gpt4 book ai didi

Java Instant 到 LocalDateTime 尾随零

转载 作者:行者123 更新时间:2023-12-05 01:16:33 24 4
gpt4 key购买 nike

我使用 Spring Boot 在 Java 中将 Instant 转换为 LocalDateTime,如下所示

LocalDateTime.ofInstant(timeInUtc, zoneId);

在我的测试中,我有一个正则表达式来检查我的资源是否返回一个带有 LocalDateTime 的 Json。 Regex 需要格式为 JSON 的值:

 2018-11-15T08:38:49.382

但看起来尾随的零被删除了,意思不是

2018-11-15T08:38:49.380

这符合正则表达式,我明白了

 2018-11-15T08:38:49.38

如何确保未删除尾随零?

最佳答案

格式化日期将有助于保留尾随零

DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS")

输出如下:

2018-11-15T08:03:45.580

以下代码:

public class Post2 {

public static void main(String[] args) {

String date = LocalDateTime.ofInstant(Instant.now(), ZoneId.of("UTC"))
.format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS"));
System.out.println(date);

}
}

编辑添加正则表达式匹配以匹配带有和不带有毫秒的日期时间。

        String regex = "^\\d\\d\\d\\d-(0?[1-9]|1[0-2])-(0?[1-9]|[12][0-9]|3[01]) (00|[0-9]|1[0-9]|2[0-3]):([0-9]|[0-5][0-9]):([0-9]|[0-5][0-9])(\\.{0,1}[0-9]{1,3})$";

String str1 = "2015-1-11 13:57:24";

String str2 = "2015-1-11 13:57:24.0";
String str3 = "2015-1-11 13:57:24.00";
String str4 = "2015-1-11 13:57:24.000";
String str5 = "2015-1-11 13:57:24.1";
String str6 = "2015-1-11 13:57:24.12";
String str7 = "2015-1-11 13:57:24.1222";
String str8 = "2015-1-11 13:57:24.02";

System.out.println( str1.matches(regex));
System.out.println(str2.matches(regex));
System.out.println(str3.matches(regex));
System.out.println(str4.matches(regex));
System.out.println(str5.matches(regex));
System.out.println(str6.matches(regex));
System.out.println(str7.matches(regex));
System.out.println(str8.matches(regex));

输出:

true
true
true
true
true
true
false
true

关于Java Instant 到 LocalDateTime 尾随零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53314552/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com