【问题标题】:How to convert Joda LocalDate to String in Java?如何在 Java 中将 Joda LocalDate 转换为字符串?
【发布时间】:2011-04-12 03:58:51
【问题描述】:

我得到了答案: 很简单。

DateTimeFormatter fmt = DateTimeFormat.forPattern("MM/dd/yyyy");
String formattedDate = jodeLocalDateObj.toString( fmt );

【问题讨论】:

  • 请不要在得到正确答案后编辑您的问题。无论如何,每个人都可以在这里看到答案。另外:如果答案对您来说很好(足够),请将其标记为“该”答案(在您认为正确的答案旁边使用楔形符号),以便发布者获得他/她应该获得的信用它。

标签: java date jodatime


【解决方案1】:
DateTimeFormatter fmt = DateTimeFormat.forPattern("MM/dd/yyyy");
String formattedDate = jodeLocalDateObj.toString( fmt );

【讨论】:

    【解决方案2】:

    虽然您找到的答案可行,但我更喜欢反过来看,即哪个对象是“活动的”(就格式而言)以及哪个对象只是提供数据:

    LocalDate localDate = new LocalDate(2010, 9, 14);
    DateTimeFormatter formatter = DateTimeFormat.forPattern("MM/dd/yyyy");
    String formattedDate = formatter.print(localDate);
    

    【讨论】:

    • 我找不到 DateTimeFormat 在哪里?能否请您也提供进口声明
    • @samthebest:你看过Javadoc吗?只需在 Google 上搜索“joda DateTimeFormat”即可找到它 - 但如果没有,joda.org/joda-time/apidocs/org/joda/time/format/…
    • 哎呀,我误读了这个问题,我以为这是针对 java 8 时间的,而不是 joda。
    【解决方案3】:

    LocalDate 的toString 可以直接带格式字符串,所以你可以跳过创建DateTimeFormatter:

    String formattedDate = myLocalDate.toString("MM/dd/yyyy");
    

    https://www.joda.org/joda-time/apidocs/org/joda/time/LocalDate.html#toString-java.lang.String-

    【讨论】:

    • 是否 toString(string_format) 每次调用它时都会创建它自己的 DateTimeFormatter 实例?如果是这样,那么进行大量转换的方法如果创建自己的实例并通过调用格式化程序的 print() 方法来重用,效率会高得多。
    • @Rick 有趣的是,内部 Joda(至少 2.3)管理线程安全模式缓存。它只在第一次创建自己的 DateTimeFormatter 实例,并在下次调用时重复使用它。
    • 此外,我不会花任何时间担心格式化日期的性能,除非我至少这样做了数千次。更大的鱼要炸。
    猜你喜欢
    • 2011-02-12
    • 2011-06-07
    • 2017-11-02
    • 2011-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-23
    相关资源
    最近更新 更多