【问题标题】:Why is DateTimeFormatter is not printing date in specified format?为什么 DateTimeFormatter 没有以指定格式打印日期?
【发布时间】:2015-10-14 03:38:25
【问题描述】:

我的代码:

DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.SSS");
DateTime dt = formatter.parseDateTime("2014-04-24 18:22:01.867");
System.out.println("dt : "+dt);

输出:

dt : 2014-04-24T18:22:01.867+05:30

预期的输出应该是相同的String:

dt : 2014-04-24 18:22:01.867

【问题讨论】:

    标签: java parsing jodatime


    【解决方案1】:

    您的输出不一样的原因是您没有使用格式化程序进行打印。格式化程序没有与DateTime“配对”,您必须明确使用它。

    试试这个:

    DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.SSS");
    DateTime dt = formatter.parseDateTime("2014-04-24 18:22:01.867");
    System.out.println("dt : " + fomatter.print(dt));
    

    【讨论】:

    • 表示虽然我们用格式化程序解析日期字符串,但dt对象会包含2014-04-24T18:22:01.867+05:30格式的值。
    • @ArpanPaliwal 不,它将以自己的内部非人类可读格式包含值,可能使用long millis 值。 toString() 方法中可能内置了默认转换,但归根结底,“显示数据”和“存储数据”是完全不同的行为。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-29
    • 1970-01-01
    • 1970-01-01
    • 2014-02-21
    • 2013-11-10
    相关资源
    最近更新 更多