zoukankan      html  css  js  c++  java
  • Date与LocalDateTime、LocalDate、LocalTime互转,以及LocalDateTime常规操作

    一、Date与LocalDateTime、LocalDate、LocalTime互转

    1、Date转LocalDateTime、LocalDate、LocalTime

    LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
    LocalTime localTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalTime();
    LocalDateTime localDateTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();

    上面很容易看出,无论是date转哪个,都是首先date.toInstant().atZone(ZoneId.systemDefault()),然后是相应的toLocalDate()、toLocalTime()、toLocalDateTime()

    2、LocalDateTime、LocalDate、LocalTime转Date

    Date date1 = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
    Date date2 = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
    Date date3 = Date.from(localTime.atDate(LocalDate.now()).atZone(ZoneId.systemDefault()).toInstant());

    上面可以看出,

    • LocalDateTime可以直接转:Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
    • LocalDate需要先调用atStartOfDay()设置默认时间,然后再转:Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
    • LocalTime需要先设置日期转成LocalDateTime再转:Date.from(localTime.atDate(LocalDate.now()).atZone(ZoneId.systemDefault()).toInstant());

    二、LocalDateTime的常规操作

    1、LocalDateTime 初始化定义

    LocalDateTime now = LocalDateTime.now();
    LocalDateTime localDateTime=LocalDateTime.of(LocalDate.now(),LocalTime.now());//LocalDate和LocalTime合成LocalDateTime
    LocalDateTime of = LocalDateTime.of(2020, 11, 11, 20, 30, 40);

    2、LocalDateTime 日期加减

    LocalDateTime localDateTime = LocalDateTime.of(2020, 11, 11, 11, 11, 59);//2020-11-11 11:11:59
    LocalDateTime localDateTime1 = localDateTime.plusSeconds(1);//2020-11-11 11:11:59 +1秒,localDateTime1=2020-11-11 11:12:00
    LocalDateTime localDateTime2 = localDateTime.plusSeconds(-1);//2020-11-11 11:11:59 -1秒,localDateTime2=2020-11-11 11:11:58
    LocalDateTime localDateTime3 = localDateTime.plusMinutes(1);//2020-11-11 11:11:59 +1分钟,localDateTime3=2020-11-11 11:12:59
    LocalDateTime localDateTime4 = localDateTime.plusMinutes(-1);//2020-11-11 11:11:59 -1分钟,localDateTime4=2020-11-11 11:10:59
    LocalDateTime localDateTime5 = localDateTime.plusHours(1);//2020-11-11 11:11:59 +1小时,localDateTime5=2020-11-11 12:11:59
    LocalDateTime localDateTime6 = localDateTime.plusHours(-1);//2020-11-11 11:11:59 -1小时,localDateTime6=2020-11-11 10:11:59
    LocalDateTime localDateTime7 = localDateTime.plusDays(1);//2020-11-11 11:11:59 +1天,localDateTime7=2020-11-12 11:11:59
    LocalDateTime localDateTime8 = localDateTime.plusDays(-1);//2020-11-11 11:11:59 -1天,localDateTime8=2020-11-10 11:11:59
    LocalDateTime localDateTime9 = localDateTime.plusMonths(1);//2020-11-11 11:11:59 +1月,localDateTime9=2020-12-11 11:11:59
    LocalDateTime localDateTime10 = localDateTime.plusMonths(-1);//2020-11-11 11:11:59 -1月,localDateTime10=2020-10-11 11:11:59
    LocalDateTime localDateTime11 = localDateTime.plusYears(1);//2020-11-11 11:11:59 +1年,localDateTime11=2021-11-11 11:11:59
    LocalDateTime localDateTime12 = localDateTime.plusYears(-1);//2020-11-11 11:11:59 -1年,localDateTime12=2019-11-11 11:11:59

    除了上面年月日时分秒的加减,还有周的加减plusWeeks(),纳秒的加减plusNanos()

    plusNanos()的使用可参考链接https://www.yiibai.com/javatime/javatime_localtime_plusnanos.html

    3、LocalDateTime 格式化

    LocalDateTime localDateTime=LocalDateTime.now();
    localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))

     格式化 HH是24小时制,hh是12小时制

     LocalDateTime还有很多方法可以使用,比如获取月份等,可以看源码。

  • 相关阅读:
    cinder支持nfs快照
    浏览器输入URL到返回页面的全过程
    按需制作最小的本地yum源
    创建可执行bin安装文件
    RPCVersionCapError: Requested message version, 4.17 is incompatible. It needs to be equal in major version and less than or equal in minor version as the specified version cap 4.11.
    惠普IPMI登陆不上
    Linux进程状态——top,ps中看到进程状态D,S,Z的含义
    openstack-neutron基本的网络类型以及分析
    openstack octavia的实现与分析(二)原理,架构与基本流程
    flask上下文流程图
  • 原文地址:https://www.cnblogs.com/pzw23/p/13953138.html
Copyright © 2011-2022 走看看