Java8新版本时间、日期处理

本文介绍了Java8中关于时间日期处理的新特性,包括LocalDateTime的基本使用、加减调整、复杂运算和区间间隔,ZonedDateTime的基本操作和时区转换,以及DateTimeFormatter的基本操作。示例代码展示了如何创建、调整日期时间以及进行时区转换,帮助理解新API的使用方法。
摘要由CSDN通过智能技术生成

目录

一、java.time.LocalDateTime

1.1 基本使用

1.2 加减调整

1.3 复杂运算

1.4 区间间隔

二、java.time.ZonedDateTime

2.1 基本操作

2.2 时区转换

三、java.time.format.DateTimeFormatter

3.1 基本操作

四、java.time.Instant

4.1 基本操作


一、java.time.LocalDateTime

1.1 基本使用

public static void main(String[] args)
{
    LocalDate d = LocalDate.now();          // 当前日期
    LocalTime t = LocalTime.now();          // 当前时间
    LocalDateTime dt = LocalDateTime.now(); // 当前日期和时间
    System.out.println(d);  // 严格按照ISO 8601格式打印
    System.out.println(t);  // 严格按照ISO 8601格式打印
    System.out.println(dt); // 严格按照ISO 8601格式打印

    System.out.println("-----------------------");

    LocalDateTime pdt = LocalDateTime.parse("2019-11-19T15:16:17");
    LocalDate pd = LocalDate.parse("2019-11-19");
    LocalTime pt = LocalTime.parse("15:16:17");
    System.out.println(pdt);
    System.out.println(pd);
    System.out.println(pt);
}

测试输出:

2019-10-29
11:54:32.796
2019-10-29T11:54:32.796
-----------------------
2019-11-19T15:16:17
2019-11-19
15:16:17


从上述的测试可以发现:

1.LocalDateTimeLocalDateLocalTime默认严格按照ISO 8601规定的日期和时间格式进行打印。

ISO 8601规定的日期和时间分隔符是T。标准格式如下:

  • 日期:yyyy-MM-dd
  • 时间:HH:mm:ss
  • 带毫秒的时间:HH:mm:ss.SSS
  • 日期和时间:yyyy-MM-dd'T'HH:mm:ss
  • 带毫秒的日期和时间:yyyy-MM-dd'T'HH:mm:ss.SSS

2. 通过指定的日期和时间创建LocalDateTime可以通过of()方法,of()方法有许多重载方式。

// 指定日期和时间:
LocalDate d2 = LocalDate.of(2019, 11, 30); // 2019-11-30, 注意11=11月
LocalTime t2 = LocalTime.of(15, 16, 17); // 15:16:17
LocalDateTime dt2 = LocalDateTime.of(2019, 11, 30, 15, 16, 17);
LocalDateTime dt3 = LocalDateTime.of(d2, t2);

 3. 可以直接将标准格式的字符串传入LocalDateTime,调用parse()方法就可以直接解析。

 

1.2 加减调整

LocalDateTime提供了对日期和时间进行加减和指定调整的的非常简单的链式调用:

public static void main(String[] args)
{
    LocalDateTime dt = LocalDateTime.of(2019, 10, 26, 20, 30, 59);
    System.out.println("dt = " + dt);
            
    // 加6天减3小时:
    LocalDateTime dt2 = dt.plusDays(6).minusHours(3);
    System.out.println("dt2 = " + dt2); // 2019-11-01T17:30:59

    // 减1月:
    LocalDateTime dt3 = dt.minusMonths(1);
    System.out.println("dt3 = " + dt3); // 2019-09-26T20:30:59

    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值