Java8 LocalDataTime String互转格式报错,附LocalDataTime 、String、13位时间戳互转代码

Java8 LocalDataTime String互转格式报错,附LocalDataTime String 13位时间戳互转代码

这几天做项目,需要将JavaLocalDataTimeString类型互相转换,调用LocalDataTimenow再toString,发现格式里们的毫秒值有时有有时无,当毫秒数为0时就没有显示,如下:

2022-02-24T13:29:44.991
2022-02-24T13:29:44.993
2022-02-24T13:29:44.994
2022-02-24T13:29:44.995
2022-02-24T13:29:44.998
2022-02-24T13:29:45
2022-02-24T13:29:45.001
2022-02-24T13:29:45.002
2022-02-24T13:29:45.004
2022-02-24T13:29:45.005

但是我在进行StringLocalDataTime时我是这样转的:

String str = "2022-02-24T13:29:44.990";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS");
LocalDateTime borrowTime = LocalDateTime.parse(str, formatter);

这就导致,当没有毫秒值的StringLocalDataTime会报错,所以可以采用这种方式进行互转:

String str = "2022-02-24T13:29:44";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss[.SSS]");
LocalDateTime borrowTime = LocalDateTime.parse(str, formatter);

将可能没有的格式用[]包起来就不会报错了,这样无论有没有毫秒数都不会报错了


附录一下常用转换格式的代码,防止忘记

LocalDataTime String互转:

//String 转 LocalDataTime
String str = "2022-02-24T13:29:44";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss[.SSS]");
LocalDateTime borrowTime = LocalDateTime.parse(str, formatter);
//LocalDataTime 转 String,输出格式:yyyy-MM-dd'T'HH:mm:ss[.SSS]
String str = LocalDataTime.now().toString();

LocalDataTime 13位时间戳互转:

long milli = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();//输出13位毫秒值
long milli = 1645682330403L;
LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(milli), ZoneOffset.of("+8"));
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值