Java 当前日期时间
最后修改日期:2024 年 7 月 10 日
在本文中,我们将介绍各种 Java 类来获取 Java 中的当前日期时间。
在 Java 中有几种方法可以获取当前日期和时间。 Java 程序员可以使用 Java 8 中引入的现代日期和时间 API (java.time)、经典的、过时的 API (java.util) 和第三方 Joda 库。
java.time 包
java.time 包包含日期、时间、瞬间和持续时间的主要 API。 它是过时的 java.util 日期和时间 API 的现代替代品。
使用 Instant 获取当前日期和时间
java.time.Instant 模拟时间轴上的单个瞬时点。 这可能用于记录应用程序中的事件时间戳。
import java.time.Instant;
void main() {
Instant instant = Instant.now();
System.out.println(instant);
}
代码示例使用 java.time.Instant 获取当前日期和时间。
Instant instant = Instant.now();
Instant.now 方法从系统时钟获取当前瞬间。
使用 LocalDateTime 获取当前日期和时间
java.time.LocalDateTime 创建一个没有时区的日期时间。
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
void main() {
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 方法从系统时钟在默认时区中获取当前日期时间。
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
我们使用 DateTimeFormatter 格式化日期时间; 我们使用自定义模式。
使用 ZonedDateTime 获取当前日期时间
java.time.ZonedDateTime 是具有时区的日期时间的不可变表示。
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
void main() {
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 提供对使用时区的当前瞬间、日期和时间的访问。
import java.time.Clock;
import java.time.Instant;
void main() {
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 表示时间中的特定瞬间,精度为毫秒。
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
void main() {
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 表示时间中的特定瞬间,精度为毫秒。
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
void main() {
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 time 获取当前日期时间
Joda time 是一个第三方日期和时间库,用于替换过时的 JDK 日期时间 API。
implementation 'joda-time:joda-time:2.12.7'
我们需要 joda-time 依赖项。
org.joda.time.LocalDateTime 是一个不可修改的日期时间类,表示没有时区的日期时间。
import org.joda.time.LocalDateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
void main() {
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 对其进行格式化。
org.joda.time.DateTime 是不可修改的日期时间类的标准实现。
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
void main() {
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 中获取当前日期和时间。
作者
列出所有Java教程。