日期时间API(JDK8新增)

JDK8出现之前

JDK8新时间日期API

LocalDate、LocalTime、LocalDateTime 的使用

类似于Calendar

LocalDateTime相较于LocalDate、LocalTime,使用频率要高

实例化

1. now():获取当前的日期、时间、日期+时间

LocalDate localDate = LocalDate.now(); // 2021-02-02

LocalTime localTime = LocalTime.now();    //14:49:05.981

LocalDateTime localDateTime = LocalDateTime.now();    //2021-02-02T14:49:05.981

2. of():设置指定的年、月、日、时、分、秒。没有偏移量

LocalDateTime localDateTime1 = LocalDateTime.of(2020, 10, 6, 13, 23, 43); // 2020-10-06T13:23:43

方法

1. getXxx():获取相关的属性 (eg. 这个月的第几天)

System.out.println(localDateTime.getDayOfWeek());    //TUESDAY

System.out.println(localDateTime.getMonth());    //FEBRUARY

System.out.println(localDateTime.getMonthValue());    // 2

System.out.println(localDateTime.getMinute());    //49

2. withXxx():设置相关的属性(不可变性-有返回值接收)

LocalDate localDate1 = localDate.withDayOfMonth(22);

System.out.println(localDate);    //2021-02-02

System.out.println(localDate1);    //2021-02-22

3. plusXxx():将相关的属性加上几个数(不可变性-有返回值接收)

LocalDateTime localDateTime3 = localDateTime.plusMonths(3);

System.out.println(localDateTime);    //2021-02-02T14:49:05.981

System.out.println(localDateTime3);    //2021-05-02T14:49:05.981

4. minusXxx():将相关的属性减去几个数(不可变性-有返回值接收)

LocalDateTime localDateTime4 = localDateTime.minusDays(6);

System.out.println(localDateTime);    //2021-02-02T14:49:05.981

System.out.println(localDateTime4);    //2021-01-27T14:49:05.981

Instant 的使用

相当于java.util.Date类

主要方法

实例化

1.Instant:now():获取本初子午线对应的标准时间

Instant instant = Instant.now();

System.out.println(instant);    //2019-02-18T07:29:41.719Z (当前的本初子午线对应时间)

2. OffsetDateTime:Xxx.atOffset添加时间的偏移量 (改为所在地的时区)

OffsetDateTime offsetDateTime = instant.atOffset(ZoneOffset.ofHours(8));

System.out.println(offsetDateTime);    //2019-02-18T15:32:50.611+08:00

方法

1. toEpochMilli():获取自1970年1月1日0时0分0秒(UTC)开始的毫秒数

相当于 Date类的getTime(),即时间戳

long milli = instant.toEpochMilli();    //1612250663726

2. ofEpochMilli():通过给定的毫秒数,获取Instant实例

相当于Date(long millis)

Instant instant1 = Instant.ofEpochMilli(1612250663726L);

System.out.println(instant1);    //2021-02-02T07:24:23.726Z

DateTimeFormatter:格式化或解析日期、时间

类似于SimpleDateFormat

实例化和对应的格式化与解析

方式一:预定义的标准格式

实例化

ISO_LOCAL_DATE_TIME;ISO_LOCAL_DATE;ISO_LOCAL_TIME

DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;

格式化:日期-->字符串

LocalDateTime localDateTime = LocalDateTime.now();

String str1 = formatter.format(localDateTime);

System.out.println(localDateTime);

System.out.println(str1);//2019-02-18T15:42:18.797

解析:字符串 -->日期

TemporalAccessor parse = formatter.parse("2019-02-18T15:42:18.797");

System.out.println(parse);

方式二:本地化相关的格式

实例化

ofLocalizedDateTime()

FormatStyle.LONG / FormatStyle.MEDIUM / FormatStyle.SHORT :三种方式返回的格式不同

适用于LocalDateTime

DateTimeFormatter formatter1 = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG);

ofLocalizedDate()

FormatStyle.FULL / FormatStyle.LONG / FormatStyle.MEDIUM / FormatStyle.SHORT: 同上

适用于LocalDate

格式化

第一种实例化(LocalDateTime)

String str2 = formatter1.format(localDateTime);

System.out.println(str2);    //2019年2月18日 下午03时47分16秒

DateTimeFormatter formatter2 = DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM);

第二种实例化(LocalDate)

String str3 = formatter2.format(LocalDate.now());

System.out.println(str3);    //2019-2-18

方式三:自定义的格式 ⚠️

实例化

ofPattern(“yyyy-MM-dd hh:mm:ss”)

DateTimeFormatter formatter3 = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");

格式化

String str4 = formatter3.format(LocalDateTime.now());

System.out.println(str4);//2019-02-18 03:52:09

解析

TemporalAccessor accessor = formatter3.parse("2019-02-18 03:52:09");

System.out.println(accessor);

java8日期加本地,日期时间API(JDK8新增)相关推荐

  1. Java8新特性之新时间API

    Java8新特性之新时间API 一.新时间API 1.1 之前时间API存在问题:线程安全问题.设计混乱 1.2 本地化日期时间API:LoaclDate.LocalTime.LocalDateTim ...

  2. js日期加减一天_JS日期加减,日期运算代码

    这篇文章主要介绍了JS日期加减,日期运算代码,需要的朋友可以参考下 一.日期减去天数等于第二个日期 function cc(dd,dadd){ //可以加上错误处理 var a = new Date( ...

  3. mysql日期加一年时间_mysql日期怎么加一年

    mysql日期加一年的方法:日期增加一年,使用updata更新语句,代码为[UPDATE table SET date = DATE_ADD(date, INTERVAL 1 YEAR)]. mysq ...

  4. java8日期加减_java时间加减

    public static void main(String[] args){ String inuput_dt=""; SimpleDateFormat sdf = new Si ...

  5. php dede 发布时间_dede 采集到数据后,发布日期变为本地日期解决方法

    找到dede目录下的co_export.php 大概在170行左右 1 //获取时间和标题 2 $pubdate = $sortrank = time(); 3 $title = $row->t ...

  6. JS日期加减,日期运算

    一.日期减去天数等于第二个日期 function cc(dd,dadd) ...{ //可以加上错误处理 var a = new Date(dd) a = a.valueOf() a = a - da ...

  7. oracle数据库日期加一,日期和Oracle数据库

    我想知道Oracle环境中的哪个参数导致这个: 假设我在两台不同的服务器上有两个数据库.数据库中的数据相同. 在sql developer下我写这个查询: select to_char(date_co ...

  8. 小程序 : js获取今日日期、加日期、减日期; 判断今日 、判断昨日

    获取今日,日期加.日期减 效果图: 选择日期大于今日时 .js代码 Page({/*** 页面的初始数据*/data: {choseDate: '', // 选择的时间week:'', //星期几on ...

  9. EDate(日期)标签之日期加减

    功能: 用于时间计算: l  日期加减一个时间段 l  两个日期计算 别名为etime 日期加减 日期加减日期加减                    日期加减用法: <edate [id=书 ...

最新文章

  1. TensorRT 7.2.1 开发概要(上)
  2. LSGO软件技术团队招新
  3. CVPR 2021 involution:超越convolution和self-attention的神经网络新算子
  4. python 操作mongodb数据库参考文档
  5. Android_activity的生命周期
  6. 将文件复制到ftp发生错误 请检查是否有权限_SE文件管理器2.8.6解锁完整功能版...
  7. UVA-10026 Shoemaker's Problem (贪心)
  8. python定义一个字符串数组_python 变量,数组,字符串
  9. java ee 设计模式解析与应用_Java EE 设计模式解析与应用_IT教程网
  10. vmware workstation 12 打开vm14 不兼容问题解决
  11. 李氏第二法分析稳定性matlab,9-4李雅普诺夫稳定性分析2010.ppt
  12. Q学习(Q learning) 强化学习的简单例子 Matlab实现 可视化
  13. Zabbix5 安装教程
  14. 神助攻or猪队友:靠AI“僚机”脱单到底有多难?
  15. rust多行字符串字面量
  16. AI美图相机原型(智能P图、AI换脸)
  17. js毫秒转换年月日时分秒
  18. Django操作数据库
  19. ios模拟器 - Simulator录制视频
  20. ctfshow node.js专题

热门文章

  1. 深入理解为什么MySQL全表扫描很慢?
  2. 使用Redis搭建电商秒杀系统
  3. Twitter 广告平台实时计费系统的架构增强之道
  4. 不称职Leader的10个特征,看看你中几条?
  5. 微众银行的金融级消息服务平台建设实践和思考
  6. 分布式存储 Ceph 介绍及原理架构分享--云平台技术栈系列01
  7. 如何在Leangoo中创建企业
  8. 恭喜,五年时间再造一家赴美上市公司
  9. 你真的了解OKR吗?
  10. 相机模拟激光雷达 建图