Java 当前日期时间教程介绍了各种 Java 类,以获取 Java 中的当前日期时间。
有几种方法可以获取 Java 中的当前日期和时间。 Java 程序员可以使用 Java 8(java.time)中引入的现代日期和时间 API,经典的,过时的 API(java.util)和第三方 Joda 库。
使用java.time
的当前日期和时间
java.time
软件包包含日期,时间,瞬间和持续时间的主要 API。 它是对过时的java.util
日期和时间 API 的现代替代。
使用Instant
获取当前日期和时间
java.time.Instant
在时间轴上模拟单个瞬时点。 这可用于记录应用中的事件时间戳。
JavaCurrentDateInstant.java
package com.zetcode;
import java.time.Instant;
public class JavaCurrentDateInstant {
public static void main(String[] args) {
Instant instant = Instant.now();
System.out.println(instant);
}
}
该代码示例使用java.time.Instant
获取当前日期和时间。
Instant instant = Instant.now();
Instant.now()
方法从系统时钟获取当前时刻。
使用LocalDateTime
获取当前日期和时间
java.time.LocalDateTime
创建不带时区的日期时间。
JavaCurrentDateLocalDateTime.java
package com.zetcode;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class JavaCurrentDateLocalDateTime {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
System.out.println(dtf.format(now));
}
}
该示例使用java.time.LocalDateTime
获取当前日期时间,并使用java.time.format.DateTimeFormatter
对其进行格式化。
LocalDateTime now = LocalDateTime.now();
LocalDateTime.now()
方法从系统时钟以默认时区获取当前日期时间。
使用ZonedDateTime
获取当前日期和时间
java.time.ZonedDateTime
是带有时区的日期时间的不变表示。
JavaCurrentDateTimeZonedDateTime.java
package com.zetcode;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
public class JavaCurrentDateTimeZonedDateTime {
public static void main(String[] args) {
ZonedDateTime now = ZonedDateTime.now();
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
System.out.println(dtf.format(now));
}
}
该示例使用java.time.ZonedDateTime
获取当前日期时间,并使用java.time.format.DateTimeFormatter
对其进行格式化。
ZonedDateTime now = ZonedDateTime.now();
ZonedDateTime.now()
方法从系统时钟以默认时区获取当前日期时间。
使用Clock
获取当前日期和时间
java.time.Clock
使用时区提供对当前时刻,日期和时间的访问。
JavaCurrentDateTimeClock.java
package com.zetcode;
import java.time.Clock;
import java.time.Instant;
public class JavaCurrentDateTimeClock {
public static void main(String[] args) {
Clock clock = Clock.systemDefaultZone();
Instant now = clock.instant();
System.out.println(now);
}
}
该示例使用java.time.Clock
获取当前日期时间。
Clock clock = Clock.systemDefaultZone();
Clock.systemDefaultZone()
方法获得一个时钟,该时钟使用最佳可用系统时钟返回当前时刻,并使用默认时区转换为日期和时间。
使用java.util
的当前日期和时间
java.util
(Date
和Calendar
)中可用的类被认为已过时。 这是原始的 Java 日期和时间 API。
使用Date
获取当前日期和时间
java.util.Date
表示特定的时间瞬间,精度为毫秒。
JavaCurrentDateTimeDate.java
package com.zetcode;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class JavaCurrentDateTimeDate {
public static void main(String[] args) {
Date now = new Date();
DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
System.out.println(df.format(now));
}
}
该示例使用java.util.Date
获取当前日期时间,并使用java.text.SimpleDateFormat
对其进行格式化。
使用Calendar
获取当前日期和时间
java.util.Calendar
表示特定的时间瞬间,精度为毫秒。
JavaCurrentDateTimeCalendar.java
package com.zetcode;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class JavaCurrentDateTimeCalendar {
public static void main(String[] args) {
Date now = Calendar.getInstance().getTime();
DateFormat df = new SimpleDateFormat("yyyy-MM-d HH:mm:ss");
System.out.println(df.format(now));
}
}
该示例使用java.util.Calendar
获取当前日期时间,并使用java.text.SimpleDateFormat
对其进行格式化。
使用 Joda 时间库的当前日期和时间
Joda time 是第三方日期和时间库,用于替换过时的 JDK 日期时间 API。
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.9.9</version>
</dependency>
我们需要joda-time
依赖性。
使用 Joda LocalDateTime
获取当前日期和时间
org.joda.time.LocalDateTime
是不可修改的 datetime 类,表示没有时区的日期时间。
JavaCurrentDateTimeJoda.java
package com.zetcode;
import org.joda.time.LocalDateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
public class JavaCurrentDateTimeJoda {
public static void main(String[] args) {
LocalDateTime ldt = new LocalDateTime();
DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy, MMMM dd, HH:mm:ss");
String str = fmt.print(ldt);
System.out.println(str);
}
}
该示例使用org.joda.time.LocalDateTime
获取当前日期时间,并使用org.joda.time.format.DateTimeFormatter
对其进行格式化。
使用 Joda DateTime
获取当前日期和时间
org.joda.time.DateTime
是不可修改的 datetime 类的标准实现。
JavaCurrentDateTimeJoda2.java
package com.zetcode;
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
public class JavaCurrentDateTimeJoda2 {
public static void main(String[] args) {
DateTime dt = DateTime.now();
DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy, MMMM dd, HH:mm:ss");
String str = fmt.print(dt);
System.out.println(str);
}
}
该示例使用org.joda.time.DateTime
获取当前日期时间,并使用org.joda.time.format.DateTimeFormatter
对其进行格式化。
在本教程中,我们展示了如何获取 Java 中的当前日期和时间。