【问题标题】:How can you make LocalDate to return Date in a specific format?如何使 LocalDate 以特定格式返回日期?
【发布时间】:2019-04-26 14:11:52
【问题描述】:

如何让 LocalDate 以特定格式返回 Date ?

例如。 LocalDate ld = LocalDate.now();

上述语句将返回日期如 2018-11-24 但我希望它返回如 24-11-2018 。

** 不要说使用格式化程序,因为格式化程序不会返回日期,它会返回对我没用的字符串。

【问题讨论】:

  • formator.parse 返回date/timeformator.format 返回字符串。
  • 如果您能解释为什么您认为您需要这样做,我们很可能会为您找到可行的解决方案。基本上你不应该想要一个有格式的日期。这可能是XY problem

标签: java-8 localdate java-time


【解决方案1】:

您的问题是矛盾的,例如您想要“24-11-2018”但也想要“日期”而不是“字符串”,而忽略了“24-11-2018”是字符串形式的日期这一事实。日期永远不会只有一种可接受的格式。所以是的,为了将日期表示为字符串,用户应该应用任何自定义的格式化程序。

但我怀疑您想更改 LocalDate-方法 toString() 的行为,该方法会生成 ISO 格式“2018-11-24”的字符串。好吧,你不能因为 LocalDate 是 final 类,所以重写这个方法是不可能的,而且也没有配置挂钩来改变行为,因为这会与类的不变性相冲突。

【讨论】:

  • 很好的解释,我只是想确认一下。如果无论哪种方式都可能会更好,但如果不是,我们必须找到其他方式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-13
  • 1970-01-01
  • 2015-03-03
  • 2010-10-15
  • 1970-01-01
相关资源
最近更新 更多