相关疑难解决方法(0)

在 1 月首先使用 DateTimeFormatter 会导致无效的年份值

当我在设置为 2017 年 1 月 1 日的 LocalDate 上使用 DateTimeFormatter(代码如下)时,我以错误的年份值结束。

LocalDate.of(2017,1,1).toString
Run Code Online (Sandbox Code Playgroud)

这将正确显示 2017-01-01 而

LocalDate.of(2017,1,1).format(DateTimeFormatter.ofPattern("dd MMM YYYY"))
Run Code Online (Sandbox Code Playgroud)

给我:01 janv。2016. 你知道为什么会这样吗?

java

1
推荐指数
1
解决办法
339
查看次数

为什么Java的java.time.format.DateTimeFormatter#format(LocalDateTime)增加一年?

这是代码:

LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(1451438792953L), ZoneId.of("UTC"));
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("YYYY-MM-dd'T'HH:mm:ss.SSS'Z'");
String output = dateTimeFormatter.format(localDateTime);
Run Code Online (Sandbox Code Playgroud)

这是值localDateTime

2015-12-30T01:26:32.953
Run Code Online (Sandbox Code Playgroud)

这是值output

2016-12-30T01:26:32.953Z
Run Code Online (Sandbox Code Playgroud)

为什么要增加一年?

其中java.time.temporal.WeekFields有几种方法,有时会newYearWeek增加年数1。为什么?

这是一个奇怪的错误。

java time localization utc

0
推荐指数
1
解决办法
167
查看次数

标签 统计

java ×2

localization ×1

time ×1

utc ×1