【问题标题】:Date pattrern format of 2021-02-22T00:00:00 [closed]2021-02-22T00:00:00 的日期模式格式 [关闭]
【发布时间】: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 谢谢

标签: java date jodatime


【解决方案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

如果您想要一个格式模式字符串,也许是为了更严格的验证,您需要:

  1. 小写dd
  2. 'T' 用单引号括起来。
  3. 大写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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-06
      • 2023-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多