【问题标题】:Removing the time from the date with Java Time [duplicate]使用 Java Time 从日期中删除时间 [重复]
【发布时间】:2016-01-21 19:00:05
【问题描述】:

我有以下日期,类型如下:Date java.util.Calendar.getTime()

Thu Jan 21 14:54:30 AST 2016

我想从日期部分中删除时间,通常我会这样做:

DateFormat outputFormatter = new SimpleDateFormat("MM/dd/yyyy");
outputFormatter .format(mydate);

效果很好,但我很想知道是否有更好的方法使用 Java Time API?

【问题讨论】:

标签: java java-time


【解决方案1】:

如果你从日历开始,你可以这样做:

Calendar c = Calendar.getInstance();
Instant instant = Instant.ofEpochMilli(c.getTimeInMillis());
LocalDate date = instant.atZone(ZoneId.systemDefault()).toLocalDate();

如果需要,您可以使用 DateTimeFormatter 对其进行格式化。

但是请注意,新 API 的想法是根本不使用 Calendar 或 Date,除非您从无法更改的方法中获取它们。

【讨论】:

  • 明确地说,java.util.Datejava.util.Calendar 是与最早的 Java 版本捆绑在一起的旧日期时间类。避开他们。它们已被 Java 8 及更高版本中内置的 java.time 类所取代,例如此正确答案中的 java.time.Instantjava.time.LocalDate 类。
猜你喜欢
  • 2018-12-14
  • 2015-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-15
  • 2014-03-24
  • 2012-11-23
相关资源
最近更新 更多