将时间戳转换为日期和时间

YCM API 响应结果中返回的是时间戳,而不是具体的日期和时间。如有需要,你可以将时间戳转换为日期和时间。本文提供了在 JAVA 中转换时间戳的示例。

使用 JDK8 或更新版本转换时间戳

/**
 * JDK8 UNIX Time to  LocalDateTime
 */
  public void testUnixTimeToLocalDateTime() {
        //unix time
        Long unixTime = 1636077838L;
        //millis time
        Long millisTime = unixTime * 1000;

        Instant instant = Instant.ofEpochMilli(millisTime);

        // system default time zone
        ZoneId defaultZoneId = ZoneId.systemDefault();
        //custom time zone
        ZoneId customZoneId = ZoneId.of("America/New_York");

        LocalDateTime defaultLocalDateTime = LocalDateTime.ofInstant(instant, defaultZoneId);
        LocalDateTime customLocalDateTime = LocalDateTime.ofInstant(instant, customZoneId);

        //String s = defaultLocalDateTime.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME);

        System.out.println(defaultLocalDateTime); //2021-11-05T10:03:58
        System.out.println(customLocalDateTime); //2021-11-04T22:03:58
    }

使用早期版本 JDK 转换时间戳

/**
 *  UNIX Time to Date
 */
public void testUnixTimeToDate() {

    Long unixTime = 1636077838L;

    // time formats
    String formats = "yyyy-MM-dd HH:mm:ss";
    Long timestamp = unixTime * 1000;
    String date = new SimpleDateFormat(formats, Locale.CHINA).format(new Date(timestamp)); // 2021-11-05 10:03:58
    System.out.println(date);

}