【问题标题】:Formatting Joda Time LocalDate to MMddyyyy [duplicate]将 Joda Time LocalDate 格式化为 MMddyyyy [重复]
【发布时间】:2016-04-22 19:30:48
【问题描述】:

我正在尝试将所需的 joda 时间 LocalDate 类型格式化为 mmddyyy 格式,但我遇到了麻烦,不知道如何继续。到目前为止,我已经尝试了几种不同的方法,但都没有运气。

所以我很想取一个像 04-15-2016 这样的日期并从中获取格式为 04152016 的 LocalDate 类型,但它仍然需要采用 LocalDate 格式,而不是字符串。

DateTimeFormatter dtf = DateTimeFormat.forPattern("MMddyyyy");
LocalDate currentDate = LocalDate.parse("04152016", dtf);
System.out.println(currentDate);

日期为 2016-04-15。如果有人可以帮助我,我将不胜感激。当谈到 Joda Time 库时,也许我错过了一些基本的东西。

谢谢。

【问题讨论】:

  • 我不明白。为什么不使用DateTimeFormatter 格式化currentDate
  • 您需要了解LocalDate 没有格式 - 这不是其状态的一部分。当您想将其转换为特定形式的文本时,请使用 DateTimeFormatter

标签: java jodatime


【解决方案1】:

您的 currentDate 代表一个时刻。例如,您可以以法国人或印度人能够理解的方式打印出那个时刻。

请先查看Joda documentation。特别是,请参阅条目

String b = dt.toString("dd:MM:yy");

你可以通过打印来调整它

currentTime.toString("MMddyyyy");

或者您可以重复使用您的格式化程序并采用Jon Skeet's answer(在 cmets 中引用)。

System.out.println(dtf.print(currentDate));

【讨论】:

    【解决方案2】:

    longdoubleDateLocalDate 等数据类型是值,不会存储您希望如何显示它们的首选格式。

    当您想以特定方式显示它们时,您需要使用格式化程序将它们转换为字符串,然后字符串具有格式,但值永远不会这样做(除了内置的默认格式)

    【讨论】:

    • 如果你也展示了如何做,你会得到我的 +1。
    • @Andreas 特别展示了哪个?
    • 显示如何以所需格式打印 LocalDate,例如System.out.println(dtf.print(currentDate));
    • @Andreas 我会看到 rajah9 的回答。
    猜你喜欢
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    • 2013-12-18
    • 2015-05-30
    • 2014-07-12
    • 1970-01-01
    相关资源
    最近更新 更多