java1.8 日期_jdk1.8日期API常用方法

asp.net web api设计设计面向演化

81.8元

包邮

(需用券)

去购买 >

24fa2d448ee8d9fc0d41d06175aef3e3.png

Date to LocalDateTime

方法1

Date d = new Date();

LocalDateTime ldt = d.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();

方法2

Date d = new Date();

LocalDateTime ldt = LocalDateTime.ofInstant(d.toInstant(), ZoneId.systemDefault());

Date to LocalDate

方法1

Date d = new Date();

LocalDate ld = d.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime().toLocalDate();

方法2

Date d = new Date();

LocalDate ld = LocalDateTime.ofInstant(d.toInstant(), ZoneId.systemDefault()).toLocalDate();

LocalDateTime to Date

方法1

LocalDateTime now = LocalDateTime.now();

Date.from(now.atZone(ZoneId.systemDefault()).toInstant());

LocalDate to Date

方法1

LocalDate now = LocalDate.now();

Date from = Date.from(now.atStartOfDay(ZoneId.systemDefault()).toInstant());

处理不同的时区(ZoneId)

LocalDate now = LocalDate.now();

ZonedDateTime zonedDateTime = now.atStartOfDay(ZoneId.of("Europe/Rome"));

LocalDateTime now = LocalDateTime.now();

ZonedDateTime zonedDateTime1 = now.atZone(ZoneId.of("Europe/Rome"));

计算时间差(ChronoUnit | Period)

// 2019-10-19

LocalDate now = LocalDate.now();

LocalDate of = LocalDate.of(2017, 6, 12);

// -859;后一个数减前一个数

ChronoUnit.DAYS.between(now, of);

// -2

ChronoUnit.YEAR.between(now, of);

// -28

ChronoUnit.MONTHS.between(now, of);

// UnsupportedTemporalTypeException

ChronoUnit.HOURS.between(now, of);

// 2019-10-19T17:27:34

LocalDateTime now = LocalDateTime.now();

LocalDateTime of = LocalDateTime.of(2016, 12, 12, 12, 12, 12);

// -24989

ChronoUnit.HOURS.between(now, of);

// -1499355

CHronoUnit.MINUTES.between(now, of);

格式化(DateTimeFormatter,DateTimeFormatterBuilder)

LocalDateTime now = LocalDateTime.now();

// 2019-10-19

now.format(DateTimeFormatter.ISO_DATE);

// 20191019

now.format(DateTimeFormatter.BASIC_ISO_DATE);

// 19/33/19 17:10:17

now.format(DateTimeFormatter.ofPattern("yy/mm/dd HH:MM:ss"));

// 2019. 十月 19

DateTimeFormatter formatter = new DateTimeFormatterBuilder()

.appendText(ChronoField.YEAR)

.appendLiteral(". ")

.appendText(ChronoField.MONTH_OF_YEAR)

.appendLiteral(" ")

.appendText(ChronoField.DAY_OF_MONTH)

.toFormatter(Locale.CHINA);

now.format(formatter)

解析(DateTimeFormatter,DateTimeFormatterBuilder)

// 2019-10-19T01:12:12

LocalDateTime.parse("2019-10-19T01:12:12");

// 2019-10-19T17:33:17

LocalDateTime.parse("19/33/19 17:10:17", DateTimeFormatter.ofPattern("yy/mm/dd HH:MM:ss");

// 2019-10-19

DateTimeFormatter formatter = new DateTimeFormatterBuilder()

.appendText(ChronoField.YEAR)

.appendLiteral(". ")

.appendText(ChronoField.MONTH_OF_YEAR)

.appendLiteral(" ")

.appendText(ChronoField.DAY_OF_MONTH)

.toFormatter(Locale.CHINA);

LocalDate.parse("2019. 十月 19", formatter)

时间调整(TemporalAdjusters | TemporalAdjuster)

// 2019-10-19

LocalDate now = LocalDate.now();

// 2019-10-12

now.with(TemporalAdjusters.previous(DayOfWeek.SATURDAY));

// 2019-10-19

now.with(TemporalAdjusters.previousOrSame(DayOfWeek.SATURDAY))

获取年月日(ChronoField)

方法1

LocalDate now = LocalDate.now();

now.getYear();

now.getMonth().getValue();

now.getDayOfMonth();

方法2

LocalDateTime now = LocalDateTime.now();

int year = now.get(ChronoField.YEAR);

int month = now.get(ChronoField.MONTH_OF_YEAR);

int days = now.get(ChronoField.DAY_OF_MONTH);

原文链接:https://segmentfault.com/a/1190000020841501

java 11官方入门(第8版)教材

79.84元

包邮

(需用券)

去购买 >

f0f3f55624fb396b1764d42d6df88864.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值