Java 8 特定格式的本地日期时间yyyy-MM-dd-HH.MM.ss.SSSS

Java 8 特定格式的本地日期时间yyyy-MM-dd-HH.MM.ss.SSSS,java-8,spring-data-jpa,localdate,zoneddatetime,Java 8,Spring Data Jpa,Localdate,Zoneddatetime,我试图为我的SpringDataJPA实体列获取特定格式的LocalDateTime 我没有得到毫秒/微秒的最后3位数。我不知道该怎么称呼它 我总是得到最后3个SSS部分000,即使我格式 final String YYYY_MM_DD_HH_MM_SS_SSSSSS = "yyyy-MM-dd-HH.mm.ss.SSSSSS"; ZonedDateTime zdtAtUtc = ZonedDateTime.now(ZoneId.of("UTC")); LocalDateTim

我试图为我的SpringDataJPA实体列获取特定格式的LocalDateTime

我没有得到毫秒/微秒的最后3位数。我不知道该怎么称呼它

我总是得到最后3个SSS部分000,即使我格式

final String YYYY_MM_DD_HH_MM_SS_SSSSSS = "yyyy-MM-dd-HH.mm.ss.SSSSSS";
    ZonedDateTime zdtAtUtc = ZonedDateTime.now(ZoneId.of("UTC"));

    LocalDateTime ldt = zdtAtUtc.toLocalDateTime();
    DateTimeFormatter destFormatter = DateTimeFormatter.ofPattern(YYYY_MM_DD_HH_MM_SS_SSSSSS);

    System.out.println(zdtAtUtc);
    System.out.println(zdtAtUtc.format(destFormatter));
    System.out.println(ldt);
输出
这是Java8中的时钟精度

如果您检查now()方法的代码,它会在如下所示的瞬间使用:
Instant now=clock.Instant()

在Java 8中,此时输出:
2019-08-02T20:44:35.722Z

在以后的版本中:
2019-08-02T20:39:27.343408800Z


因此,如果您需要更高的精度,您需要切换到较新版本的java。

您确定它们存在吗?当我使用调试器运行代码时,秒只有3个位置,即时间={LocalTime@784}“15:34:18.068”小时=15分钟=34秒=18 nano=6800000从另一个应用程序我正在传递一个字符串w/yyyy-MM-dd-HH.MM.ss.ssss即使SSS的最后3位数字也有值。我能够将特定字符串转换为所需格式的LocalDateTime。它确实有价值。我正在尝试为UTC格式的当前日期获取类似的内容,这在Java8中是不可能的,请使用java9或更高版本。查看此答案了解更多详细信息。这听起来不对:我的spring数据jpa实体列的特定格式的LocalDateTime。对于持久性,不应使用
LocalDateTime
表示时间点,而应使用
Instant
。你不应该担心格式。
2019-07-30T15:23:18.232Z[UTC]
2019-07-30-15.23.18.232000
2019-07-30T15:23:18.232