Java8 Date Time 使用案例

PS:

  1. 本文的代码保证正确性,原则是:下一次使用时直接copy可用.
  2. 工作中遇到新的需求会更新此文.

对日期及时间的处理,我们都不陌生,但是总会有你不熟悉的新需求产生,毕竟产品经理的奇思妙想是很多的.

本文记录日常工作中使用到的获取特殊时间点的一些方式,不一定出厂最优解,但我会努力改进至最优解.

时间戳转换为LocalDateTime

long showTime = System.currentTimeMillis();
LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(showTime),ZoneId.of("Asia/Shanghai"));

LocalDateTime格式化输出

String s = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
System.out.println(s);

获取当天的时间戳范围(0点-24点)

long start = Timestamp.valueOf(LocalDateTime.of(LocalDate.now(), LocalTime.MIN)).getTime();
long end = Timestamp.valueOf(LocalDateTime.of(LocalDate.now(), LocalTime.MAX)).getTime();

获取当前时间一天前的时间戳

long time = Timestamp.valueOf(LocalDateTime.now().minusDays(1)).getTime();

日期的字符串转换为时间戳

private Long dateTimeStrToTimeStamp(String dateTime) {
    //解析日期
    LocalDateTime localDateTime = LocalDateTime
        .parse(dateTime.substring(0,19), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
    //获取时间戳
    return Timestamp.valueOf(localDateTime).getTime();
  }

获取下周一和下周日的LocalDate

LocalDate start = LocalDate.now().plusDays(8 - LocalDate.now().getDayOfWeek().getValue());
LocalDate end = LocalDate.now().plusDays(14  - LocalDate.now().getDayOfWeek().getValue());

ChangeLog

2018-11-28 添加了前五个

以上皆为个人所思所得,如有错误欢迎评论区指正。

欢迎转载,烦请署名并保留原文链接。

联系邮箱:huyanshi2580@gmail.com

更多学习笔记见个人博客——>呼延十

var gitment = new Gitment({ id: 'Java8 Date Time 使用案例', // 可选。默认为 location.href owner: 'hublanker', repo: 'blog', oauth: { client_id: '2297651c181f632a31db', client_secret: 'a62f60d8da404586acc965a2ba6a6da9f053703b', }, }) gitment.render('container')

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券