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。 (您可能还需要考虑yyyyYYYY 之间的区别。) 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 的这种格式? [复制]

在Java中解析日期的毫秒分数

12c 中的 Oracle 日期格式 9999-06-15T00:00:00.000+0000

如何将字符串 '2020-01-06T00:00:00.000Z' 转换为日期时间对象?

这是一个有效的日期时间值:00-2-11-30T00:00:00.000 + 02:00

如何在数据表中从 '2021-01-09T00:00:00' LIKE 2021-01-09 转换日期时间格式