【问题标题】:How do I find the DateTime formatter pattern for this type of Date?如何找到此类日期的 DateTime 格式化程序模式?
【发布时间】:2014-08-20 20:08:56
【问题描述】:

我知道对于“23-07-2014”这种格式的日期,我可以将格式化程序用作“dd-MM-yyyy”。

我可以使用什么作为这个日期的格式化程序“2014-07-05T00:00:00.000-07:00”

我正在使用 DateTimeFormatter 并想指定模式来解析上述日期。

谢谢!

【问题讨论】:

标签: java jodatime


【解决方案1】:

嗯,作为人类,你能读懂它吗?你能确定哪个部分匹配什么吗?如果是这样,查看documentation 并自己解决是微不足道的。

例如,开头看起来像年、月、日(我想可能是年、日、月,但我们假设它是正常的)。文档指出该年份由y 映射,并且您需要4 个数字,因此您的格式以yyyy 开头。同样的道理,一年中的月份是M,月份中的一天是d,所以你的格式以yyyy-MM-dd开头。

T 只是日期和时间之间的分隔符。然后你会得到一些看起来像小时、分钟、秒的东西 - 查看文档,那是 HH:mm:ss

以下 3 个数字看起来像毫秒:`S'。

最后,一个时区作为偏移量:Z

把它放在一起:

yyyy-MM-dd'T'HH:mm:ss:.SSSZ

即兴发挥,我没有尝试过也没有仔细检查过,但它应该可以工作。或者至少,它应该向您展示如何去做,只需阅读文档即可。

【讨论】:

    【解决方案2】:

    您的日期格式错误"dd-mm-yyyy"。它应该是"dd-MM-yyyy"MM 用作月份,mm 用作分钟。

    可以使用"yyyy-MM-dd'T'HH:mm:ss.SSSXXX"解析2014-07-05T00:00:00.000-07:00

    String str = "2014-07-05T00:00:00.000-07:00";
    DateFormat df=new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
    System.out.println(df.parse(str));
    

    输出:

    Sat Jul 05 12:30:00 IST 2014
    

    关注this。下次你自己来回答。

    【讨论】:

    • 是的,我的错。但是下一个输入的模式是什么?
    • 我不确定我们是否可以在模式中写 T 或者 T 指的是星期二?
    • @Zer0 不,不是。完整阅读我的答案并参考链接
    • 非常感谢您的链接!
    猜你喜欢
    • 2018-03-08
    • 2020-08-03
    • 1970-01-01
    • 1970-01-01
    • 2014-11-13
    • 1970-01-01
    • 2022-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多