2021-02-22T00:00:00 的日期模式格式 [关闭]
Posted
技术标签:
【中文标题】2021-02-22T00:00:00 的日期模式格式 [关闭]【英文标题】:Date pattrern format of 2021-02-22T00:00:00 [closed] 【发布时间】:2021-09-19 17:53:03 【问题描述】:有人能说出这是哪种日期格式吗?
2019-01-22T00:00:00
我是这样的
YYYY-MM-DDThh:mm:ss
但我得到 java.lang.IllegalArgumentException: Illegal pattern component: T 我正在使用 org.joda.time.format 中的 DateTimeFormatter
【问题讨论】:
是的,T
不像 YYYY
等那样是模式说明符,因此您需要将其放在引号中。但是您应该非常仔细地查看所有内容的外壳。我怀疑你想要dd
而不是DD
,以及HH
而不是hh
。 (您可能还需要考虑yyyy
和YYYY
之间的区别。)
yyyy-MM-dd'T'HH:mm:ss
如果我没记错的话,我认为你应该像'T'
这样写“T”。您可以尝试使用任何java formatter
@DmitryBychenko 你能移到 asnwer 吗?
@MartinMarconcini 谢谢
【参考方案1】:
无需格式化程序
你不需要一个格式化程序,因此不需要格式化模式字符串。
import org.joda.time.LocalDateTime;
String s = "2019-01-22T00:00:00";
LocalDateTime ldt = LocalDateTime.parse(s);
System.out.println(ldt);
输出:
2019-01-22T00:00:00.000
格式为ISO 8601。
如果您想要一个格式模式字符串,也许是为了更严格的验证,您需要:
-
小写
dd
。
'T'
用单引号括起来。
大写HH
。
虽然我更喜欢小写 yyyy
年份,但大写 YYYY
年份年份也适用于 Joda-Time。
【讨论】:
【参考方案2】:格式字符串为
yyyy-MM-dd'T'HH:mm:ss
在哪里
yyyy - years in four digit form
MM - Months in 2 digit form
dd - days in 2 digit form
'T' - Letter T (note escapement '...')
HH - Hours in 24 hour form, leading zero is mandatory
mm - miniutes with leading zero
ss - seconds with leading zero
详情请咨询manual
【讨论】:
以上是关于2021-02-22T00:00:00 的日期模式格式 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何获得日期 2018-05-23T23:00:00.000+00:00 的这种格式? [复制]
12c 中的 Oracle 日期格式 9999-06-15T00:00:00.000+0000
如何将字符串 '2020-01-06T00:00:00.000Z' 转换为日期时间对象?