Java获取当前日期时间

后端 潘老师 6个月前 (10-31) 143 ℃ (0) 扫码查看

学习在Java中获取当前日期和时间。请注意,处理日期时间方法在JDK 8之前和之后的方法是不同的。

  • 对于JDK 8或更高版本,推荐使用LocalDate和LocalTime类。
  • 对于JDK 7或更早版本,我们只能使用Date和Calendar类。

1.获取当前日期和时间(Java 8或更高版本)

11..核心类

在Java 8或更高版本中,日期和时间信息由以下类表示。这些类为用户提供当前的日期和时间,并且没有与它关联的时区信息。

  • java.time.LocalDate – 只代表yyyy-MM-dd格式的日期信息。
  • java.time.LocalTime – 只代表HH:mm:ss.SSSSSSSSS格式的时间信息。
  • java.time.LocalDateTime – 同时代表日期和时间信息,但没有时区信息。该模式是本地日期和时间信息的组合。

要获取另一个时区/区域的当前日期和时间信息,我们可以使用以下类。

  • java.time.ZonedDateTime – 表示在给定时区的日期和时间信息。

1.2.代码示例

以下代码显示了如何使用now()方法获取每个类当前的日期时间信息。now()方法返回一个不可变且线程安全的实例,即调用该方法的类的一个实例。

// 获取当前日期
LocalDate today = LocalDate.now();
System.out.println(today);   //2022-02-15
// 获取当前时间
LocalTime now = LocalTime.now();
System.out.println(now);   //12:43:51.519251200
// 获取当前日期时间
LocalDateTime instance = LocalDateTime.now();
System.out.println(instance);   //2022-02-15T12:43:51.519251200

要获取特定时区的日期和时间信息,将时区信息传递给ZonedDateTime.now()方法。

// 获取 GMT(格林威治)时区的日期时间
ZonedDateTime tzInstance = ZonedDateTime.now(ZoneId.of("GMT"));
System.out.println(tzInstance);  //2023-10-31T00:59:38.806Z[GMT]
// 获取东八区日期时间
ZonedDateTime tzInstance2 = ZonedDateTime.now(ZoneId.of("GMT+8"));
System.out.println(tzInstance);  //2023-10-31T08:59:38.810+08:00[GMT+08:00]

1.3.显示格式化的日期和时间

上述类默认的字符串表示是固定的。如果我们想以某种自定义模式显示信息,我们可以使用DateTimeFormatter类。

LocalDateTime instance = LocalDateTime.now();
DateTimeFormatter formatter
    = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm");
String formattedString = formatter.format(instance); //2023-10-31 10:23

2.获取当前日期和时间(Java 7或更早版本)

1.核心类

直到版本7或更早之前,Java并没有单独的日期和时间部分类。主要的类有:

  • java.util.Date
  • java.util.Calendar

2.代码示例

让我们快速了解一下在遗留Java类中获取当前日期和时间信息的方法。

Date date = new Date();
System.out.println(date);    //Tue Feb 15 13:00:31 IST 2022
Calendar cal = Calendar.getInstance();
System.out.println(cal);

2.3.显示格式化的日期和时间

要显示以自定义格式化的日期和时间,我们应该使用SimpleDateFormat类。

Date date = new Date();
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm");
System.out.println(sdf.format(date));  //2023-10-31 09:04
System.out.println(sdf.format(cal.getTime()));  //2023-10-31 09:04

版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/back/10509.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】