deH*_*aar 6
该字符z
应该能够解析"UTC"
(在大多数Locale
s 中),因为UTC被认为是时区 ID和时区名称。java.time
AVV
可以解析时区 ID,同时z
可以根据JavaDocs解析时区名称,这是文档的相关部分:java.time.DateTimeFormatter
Symbol Meaning Presentation Examples
------ ------- ------------ -------
(…)
V time-zone ID zone-id America/Los_Angeles; Z; -08:30
z time-zone name zone-name Pacific Standard Time; PST
(…)
这意味着您可以使用该字符对其进行解析,V
而无需为Locale
您的DateTimeFormatter
. 您将不得不放置其中两个 ( VV
) ,否则您将收到IllegalArgumentException
以下消息:
java.lang.IllegalArgumentException: Pattern letter count must be 2: V
如果您仍然想使用z
,请提供一个Locale
考虑Universal Time CoordinatedUTC
的缩写,Central European Summer Time是一个在不同 s 之间肯定会发生变化的缩写,例如Locale
CEST
德语: MESZ
其他Locale
s 可能有不同的缩写,这让我想知道你是否Locale
真的有不同的UTC
.
提供Locale.ENGLISH
,例如,它应该成功解析。
无论如何,您都应该提供一个,因为如果您不这样做,DateTimeFormatter
它将隐式使用Locale
您的(Java 虚拟)机器的默认值。
所以你可以试试这个:
DateTimeFormatter format = DateTimeFormatter.ofPattern("uuuu-MM-ddVVHH:mm");
或这个:
DateTimeFormatter format = DateTimeFormatter.ofPattern("uuuu-MM-ddzHH:mm", Locale.ENGLISH);
"2022-05-24UTC12:15"
如果您使用HH
而不是hh
一天中的几个小时(hh
= 12h 格式,HH
= 24h 格式) ,两者都应该能够解析输入。
更多推荐
格式,异常,模式,ZonedDateTime
发布评论