今天我将纪元的时间解析为 String ,如下所示:
private String convertEpochTime(Long timeInEpoch) {
return new SimpleDateFormat("MM/dd/yyyy HH:mm")
.format(new java.util.Date (timeInEpoch * 1000));
}
我想使用 Java 8 新的 LocalDate API,而不是使用字符串,但没有找到方法。
我希望我能做到:
private LocalDate convertEpochTime(Long timeInEpoch) {
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("MM/dd/yyyy HH:mm").format(new java.util.Date (timeInEpoch * 1000));
return LocalDate.parse(dateTimeFormatter);
}
有没有办法做到这一点?
答案 0 :(得分:4)
您可以使用Instant.ofEpochSecond
,然后将即时转换为isInitialized
:
LocalDate
或者如果您还想有时间,请转换为Instant instant = Instant.ofEpochSecond(timeInEpoch);
LocalDate localDate = instant.atZone(ZoneId.systemDefault()).toLocalDate();
:
LocalDateTime
而不是LocalDateTime localDateTime = instant.atZone(ZoneId.systemDefault()).toLocalDateTime();
您可能需要根据需要使用不同的区域。
因此不需要使用字符串作为中介。