gpt4 book ai didi

java 8获取带偏移量的当前日期的字符串值

转载 作者:行者123 更新时间:2023-12-01 20:07:40 26 4
gpt4 key购买 nike

我想以这种格式获取当前日期“2017-09-07T11:55:32+00:00”但不太熟悉如何在 Java 8 中做到这一点..已经尝试过

    LocalDateTime now = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ISO_OFFSET_DATE_TIME;
String todaysDateTime = now.format(formatter);

给我一​​个错误

java.time.temporal.UnsupportedTemporalTypeException: Unsupported field: 
OffsetSeconds

有人知道我该怎么做吗?

最佳答案

OffsetDateTime odt = now.atOffset(ZoneOffset.ofHoursMinutes(1, 0));
System.out.println(odt);

所有时间变体的toString已经给出了相应的ISO格式。

2017-11-08T15:31:04.115+01:00

但是,它会给出 Z,而不是 +00:00。还给出了毫秒。因此,要么使用这个标准,要么制定自己的模式。

您的格式为:

DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssxxx");

其中小x(而不是X)不进行“Z”替换,冒号:需要xxx。

<小时/>

因此得到的字符串可以如下获取(感谢@OleV.V.):

OffsetDateTime.now(ZoneOffset.UTC)
.format(DateTimeFormatter.‌​ofPattern("yyyy-MM-d‌​d'T'HH:mm:ssxxx"))
<小时/>

另一个方向:

LocalDateTime 包含一个很长的毫秒数 - 计数。它不再像 OffsetDateTime 中那样保存偏移量。

OffsetDateTime odt = fmt.parse(inputString);
Instant instant = odt.toInstant(); // Bare bone UTC time.
LocalDateTime ldt = LocalDateTime.ofInstant(odt.toInstant(), ZoneId.of("UTC")); // UTC too.

(这比我想象的要复杂一点。)

关于java 8获取带偏移量的当前日期的字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47182138/

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