如何将字符串时间戳解析为localdatetime

w8f9ii69  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(372)

我正在尝试解析字符串时间戳 LocalDateTime .

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSX");

String requestTimestamp = "2020-11-27 18:04:31+0";
String endDate ="2020-12-25 23:59:59+0";
final Long between = ChronoUnit.MINUTES.between(LocalDateTime.parse(endDate,formatter), LocalDateTime.parse(requestTimestamp,formatter));

正在获取以下异常:

Caused by: java.time.format.DateTimeParseException: Text '2020-12-25 23:59:59+0' could not be parsed at index 19
    at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949)
    at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851)
    at java.time.LocalDateTime.parse(LocalDateTime.java:492)

你能帮我一下我的密码有什么问题吗。为什么我要 DateTimeParseException ?

wpx232ag

wpx232ag1#

你的代码有两个问题。
和你的模式一样, yyyy-MM-dd HH:mm:ss.SSSX ,输入不包含 2020-11-27 18:04:31+0 .sss部分(秒的分数) +0 你的意见必须是 +00 用于区域偏移。如果区域偏移量为零,则输入形式为零 2020-11-27 18:04:31Z 带图案 yyyy-MM-dd HH:mm:ssX 下面是工作代码,

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX");

String requestTimestamp = "2020-11-27 18:04:31Z";
String endDate = "2020-12-25 23:59:59Z";

加上最后两分钱,如果您可以控制输入,建议您使用预定义的格式化程序。我觉得等一下就可以满足你的需要了。

相关问题