gpt4 book ai didi

Java String DateTime 到 toEpochMilli - 不同区域

转载 作者:行者123 更新时间:2023-12-02 09:12:14 24 4
gpt4 key购买 nike

我正在开发 toEpochMilli() 的字符串转换方法。但是当我在不同时区的区域服务器上发布代码时,我得到了不同的结果。怎么解决?

    //input = "2019-12-26T00:00:00"

private static Long converter(String stringDate) {
try {
LocalDateTime dateTime = LocalDateTime.parse(stringDate, DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss"));
ZoneId zoneId = ZoneId.of("America/Sao_Paulo");
return dateTime.atZone(zoneId).toInstant().toEpochMilli();
} catch (DateTimeParseException dte) {
throw new DateException("Invalid input format", dte);
}
}

圣保罗输出转换为 LocalDateTime 时获得的结果与输入相同,但北弗吉尼亚输出转换为 LocalDateTime 时获得的结果与输入不同。

public static String backConverter(Long epochMilli) {
LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(epochMilli), ZoneId.of("America/Sao_Paulo"));
return DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss").format(localDateTime);
}

最佳答案

该解决方案适用于不同的地方,具有相同的输出。

//input = "2019-12-26T00:00:00"

private static Long converter(String stringDate) {
try {
LocalDateTime dateTime = LocalDateTime.parse(stringDate, DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss"));
ZoneId zoneId = ZoneId.systemDefault();
return dateTime.atZone(zoneId).toInstant().toEpochMilli();
} catch (DateTimeParseException dte) {
throw new DateException("Invalid input format", dte);
}
}

public static String backConverter(Long epochMilli) {
LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(epochMilli), ZoneId.systemDefault());
return DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss").format(localDateTime);
}

关于Java String DateTime 到 toEpochMilli - 不同区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59311286/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com