用 Java 8 将 ms 转换为字符串日期

Convert ms into a string date with Java 8

我有一个 ms 的时间戳,并用这样的 SimpleDateFormater 格式化它:

SimpleDateFormat sdfDate = new SimpleDateFormat("MM/d/yyyy h:mm a");

return sdfDate.format(new Date(timeStamp));

现在我想更改它以使用新的 Java 8 种能力。看来我真的找不到办法让它与新的 Java 8 类 一起工作。有人有提示吗?

我希望你能在 Java 8 中尝试从时间戳中获取日期:

timeStamp.toLocalDateTime().toLocalDate();

对于格式化,您可以使用 LocalDateTime 作为:

String str = "1997-03-18 11:30";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
LocalDateTime dateTime = LocalDateTime.parse(str, formatter);

如果你只有一个毫秒值(假设来自 Unix Epoch),你可以使用类似的东西得到一个 LocalDateTime

LocalDateTime ldt = LocalDateTime.ofInstant(Instant.ofEpochMilli(timeInMillis), ZoneId.systemDefault());
System.out.println(ldt);

可以打印出如下内容:

2015-09-29T16:57:40.077

然后您可以使用如下格式对其进行格式化:

System.out.println(ldt.format(DateTimeFormatter.ofPattern("MM/dd/yyyy h:mm a")));

可以打印类似的东西(基于上一个例子的原始时间):

09/29/2015 4:57 PM