JDK8 新增的日期时间类(常用)

导读:本篇文章讲解 JDK8 新增的日期时间类(常用),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

详解 JDK8 新增的日期时间类

这些新增的日期时间API都在 java.time包下

LocalDate、LocalTime、LocalDateTime

获取时间对象:

  • 通过静态方法:now()(获取的时间是系统当前的时间)
  • 通过静态方法:of()(方法参数可以指定时间)
  1. LocalDateTime:获取年月日时分秒等于LocalDate + LocalTime
// LocalDateTime:获取年月日时分秒等于 LocalDate + LocalTime
// 例如:2021-02-11T15:39:04.461
LocalDateTime localDateTime = LocalDateTime.now();
// 2021-02-11T15:39:04.461
System.out.println(localDateTime);
LocalDate localDate = localDateTime.toLocalDate();
LocalTime localTime = localDateTime.toLocalTime();
// 2021-02-11 15:39:04.461
System.out.println(localDate + " " + localTime );
  1. LocalDate:获取年月日
// LocalDate:获取年月日
LocalDate localDate1 = LocalDate.now();
// 2021-02-11
System.out.println(localDate1);
  1. LocalTime:获取时分秒
// LocalTime:获取时分秒
LocalTime localTime1 = LocalTime.now();
// 15:41:26.223
System.out.println(localTime1);

Instant——时间戳类

  1. 获取对象的方法:
  • now()

注意: 默认获取出来的是当前的美国时间,
和我们相差八个小时(因为我们在东八时区)

  1. 获取系统默认时区时间的方法:
  • atZone() :方法的参数是要一个时区的编号(可以通过时区编号类获取ZonedDateTime类的对象)
//从1970 - 01 - 01 00:00:00 截止到当前时间的毫秒值
long l0 = System.currentTimeMillis();
System.out.println(l0);
long time = new Date().getTime();
System.out.println(time);

 //JDK1.8 Instant 时间戳类从1970 -01 - 01 00:00:00 截止到当前时间的毫秒值
Instant now1 = Instant.now();

//toEpochMilli():从1970 -01 - 01 00:00:00 截止到当前时间间隔的毫秒值
long l1 = now1.toEpochMilli();
// 1613030503057
System.out.println(l1);

//获取从1970 -01 - 01 00:00:00 截止到当前时间间隔的秒值
long epochSecond = now1.getEpochSecond();
// 1613030503
System.out.println(epochSecond);

DateTimeFormatter——解析和格式化日期或时间的类

注:SimpleDateFormat 线程不安全的,而 DateTimeFormatter 线程安全的

常用API:

  • 静态方法 ofPattern("yyyy-MM-dd")
    通过给定格式获取对象
  • format():
    把一个日期对象的默认格式 格式化成指定的格式的字符串
// 指定格式 静态方法 ofPattern()
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// DateTimeFormatter 自带的格式方法
LocalDateTime now = LocalDateTime.now();

// DateTimeFormatter 把日期对象,格式化成字符串
String strDate1 = formatter.format(now);
// 2021-02-11 16:00:50
System.out.println(strDate1);

// LocalDateTime 自带的格式化方法
String strDate2 = now.format(formatter);
// 2021-02-11 16:00:50
System.out.println(strDate2);

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/69729.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!