【问题标题】:Subtract two dates in dd-MMM-yy HH:mm format以 dd-MMM-yy HH:mm 格式减去两个日期
【发布时间】:2018-04-25 16:33:09
【问题描述】:

日期如下:

25/apr/18 上午 10:24

这是我尝试使用的代码

DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd-MMM-yy HH:mm");
LocalDate open = LocalDate.parse(openTime.toString(), dtf);
LocalDate now = LocalDate.now();
now = dtf.format(now); // <-- Can't do this as it's apparently a string and not a LocalDate
elapsedDays = ChronoUnit.DAYS.between(now, open)

【问题讨论】:

  • 那么问题到底是什么?
  • @Mureinik 增加了一些清晰度,显然格式化日期很难
  • 您可能想问自己:如果今天是 2018 年 4 月 26 日,将其格式化为您的格式的预期结果是什么?由于您的格式还包括时间,因此这样做没有意义。 LocalDate也不能有格式,格式化的日期需要在String中。

标签: java localdate


【解决方案1】:

首先,从您的示例来看,您的模式需要支持 AM/PM,其次,您现在不需要解析,因为您想将其用作 LocalDate 实例。

String input = "22/Apr/18 10:24 AM";
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd/MMM/yy hh:mm a", Locale.ENGLISH);
LocalDate open = LocalDate.parse(input, dtf);
LocalDate now = LocalDate.now();

long diff = ChronoUnit.DAYS.between(open, now);

【讨论】:

  • 好答案。如果您还想在计算天数时考虑一天中的时间,请使用 LocalDateTime 而不是 LocalDate
猜你喜欢
  • 2014-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-17
  • 2021-07-20
  • 2018-04-30
  • 1970-01-01
相关资源
最近更新 更多