gpt4 book ai didi

Java DateTimeFormatter 从星期一开始一周

转载 作者:行者123 更新时间:2023-12-02 01:01:27 31 4
gpt4 key购买 nike

我正在尝试使用 DateTimeFormatter 格式化当前日期,我几乎得到了我需要的东西,但我的问题似乎是一周中的几天是从星期日而不是星期一开始枚举的。因此,例如,如果我在星期二运行下面的代码

import java.time.LocalDateTime
import java.time.format.DateTimeFormatter;
final LocalDateTime currentTime = LocalDateTime.now()
def DATE = currentTime.format(DateTimeFormatter.ofPattern("YYYY'cw'w'd'e"))

我期望输出:2020cw10d2,但我得到的实际输出是2020cw10d3。有一个本地化的星期几模式 DateTimeFormatter文档,这是 e/c 选项,但是,在我的情况下它似乎没有改变任何内容。我位于欧洲 (GMT+1),周数从周一开始计算。我使用的服务器也位于同一时区,但我在桌面和服务器上仍然得到相同的输出。我究竟做错了什么?有没有办法在 DateTimeFormatter 中枚举从星期一开始的周数?

最佳答案

您可以使用 withLocaleDateTimeFormatter 提供区域设置:

currentTime.format(DateTimeFormatter.ofPattern("YYYY'cw'w'd'e").withLocale(Locale.UK));

或者将其作为第二个参数传递给ofPattern:

currentTime.format(DateTimeFormatter.ofPattern("YYYY'cw'w'd'e", Locale.UK));

但是,格式化程序默认情况下应该使用您自己的区域设置,因此它会执行您不期望的操作,这很奇怪。

UK 区域设置从星期一开始计算工作日,因此如果您只想以这种特定方式格式化工作日,则可以使用它。

关于Java DateTimeFormatter 从星期一开始一周,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60587633/

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