代码之家  ›  专栏  ›  技术社区  ›  Jigar Naik

将ZoneDateTime转换为java.util.Date

  •  0
  • Jigar Naik  · 技术社区  · 6 年前

    当我调用 Date.from(datetime.toInstant()) 把它转换成本地时区。

    public static void printDate(ZonedDateTime datetime) {
        System.out.println("---> " + datetime.format(DateTimeFormatter.ofPattern(API_TIME_STAMP_PATTERN)));
        System.out.println(Date.from(datetime.toInstant()));
        System.out.println("\n");
    }
    

    输出

    ---> 2019-03-13_08:46:26.593
    Wed Mar 13 16:46:26 SGT 2019
    
    0 回复  |  直到 4 年前
        1
  •  2
  •   ETO    6 年前

    你可以自己加上偏置毫米。请参见使用的示例 java.util.Date :

    long offsetMillis = ZoneOffset.from(dateTime).getTotalSeconds() * 1000;
    long isoMillis = dateTime.toInstant().toEpochMilli();
    Date date = new Date(isoMillis + offsetMillis);