是否可以仅通过DateTimeFormatter解析LocalDate?

时间:2016-12-27 09:29:44

标签: date java-8

今天我将纪元的时间解析为 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);
}

有没有办法做到这一点?

1 个答案:

答案 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(); 您可能需要根据需要使用不同的区域。

因此不需要使用字符串作为中介。