我想让我的格式为2016-07-08T00:00:00.000Z.
String myDate = "20160708";
LocalDate myLocalDate = LocalDate.parse(myDate, DateTimeFormatter.BASIC_ISO_DATE);
OffsetDateTime myOffsetDate = myLocalDate.atTime(OffsetTime.now(ZoneOffset.UTC));
System.out.println(myOffsetDate); //2016-07-08T14:58:23.170Z
Run Code Online (Sandbox Code Playgroud)
好吧,不要说"我希望它使用当前时间"!这就是这样做:
OffsetTime.now(ZoneOffset.UTC)
Run Code Online (Sandbox Code Playgroud)
如果你只是想一个OffsetDateTime从LocalDate通过提供零偏移和午夜,你可以使用:
OffsetDateTime myOffsetDate = myLocalDate
.atTime(LocalTime.MIDNIGHT)
.atOffset(ZoneOffset.UTC);
Run Code Online (Sandbox Code Playgroud)
或者如果您愿意:
OffsetDateTime myOffsetDate = myLocalDate
.atTime(OffsetTime.of(LocalTime.MIDNIGHT, ZoneOffset.UTC));
Run Code Online (Sandbox Code Playgroud)
(我个人更喜欢第一个版本,我自己...)
请注意,这只是让你正确OffsetDateTime.如果要使用毫秒和秒来格式化,则需要明确地执行此操作:
DateTimeFormatter formatter = DateTimeFormatter
.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSX");
System.out.println(myOffsetDate.format(formatter));
Run Code Online (Sandbox Code Playgroud)
正如评论中所述,如果你找到的是一个ZonedDateTime而不是一个OffsetDateTime,你可以使用
ZonedDateTime myOffsetDate = myLocalDate.atStartOfDay(ZoneOffset.UTC);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2992 次 |
| 最近记录: |