Java日期格式化?

use*_*094 4 java formatting date

我想以YYYY-MM-DD格式阅读日期.

但是如果我输入日期说例如2008-1-1,我想把它读作2008-01-01.

有谁能够帮我?提前致谢

Lud*_*uer 11

或者使用更好的Joda Time lib.

    DateTime dt = new DateTime();
    System.out.println(dt.toString("yyyy-MM-dd"));

    // The ISO standard format for date is 'yyyy-MM-dd'
    DateTimeFormatter formatter = ISODateTimeFormat.date();
    System.out.println(dt.toString(formatter));
    System.out.println(formatter.print(dt));
Run Code Online (Sandbox Code Playgroud)

Date和Calendar API太糟糕了.


Ade*_*ari 7

使用SimpleDateFormat.

将帖子

几个示例代码.

  • 只需要注意线程问题!我使用SimpleDateFormat时遇到了最奇怪的错误 (4认同)

Jon*_*eet 7

如果你需要使用内置的Java日期/时间处理,Adeel的解决方案很好,但我个人更喜欢使用Joda Time.在格式方面,Joda Time的主要优点是格式化程序是无状态的,因此您可以安全地在线程之间共享它.示例代码:

DateTimeFormatter parser = DateTimeFormat.forPattern("YYYY-M-D");
DateTimeFormatter formatter = DateTimeFormat.forPattern("YYYY-MM-DD");

DateTime dt = parser.parseDateTime("2008-1-1");
String formatted = formatter.print(dt); // "2008-01-01"
Run Code Online (Sandbox Code Playgroud)