gpt4 book ai didi

java - 字符串到 ZonedDateTime 和时间戳转换格式

转载 作者:行者123 更新时间:2023-11-30 02:11:04 31 4
gpt4 key购买 nike

我使用的 SQL Server 有一列包含日期时间。我想将用户输入字符串插入数据库,为此我尝试使用时间戳插入。

以下 Java 代码将 String 转换为 ZonedDateTime。

情况1:

String ip="2018-05-01T06:47:35.422-05:00";
ZonedDateTime zdt = ZonedDateTime.parse(ip, DateTimeFormatter.ISO_ZONED_DATE_TIME);
System.out.println(Timestamp.from(zdt.toInstant()));

输出为 2018-05-01 06:47:35.422

情况2:

如果字符串 ip="2011-04-07T00:00:00.000-04:00";输出为 2011-04-06 23:00:00.0

在第二种情况下,为什么日期会更改为前一天,并且时间会考虑偏移?

最佳答案

下面是我尝试过的代码。请注意,由于我位于 -7:00 时区,因此它会从时间字符串中指定的 -5:00 中额外减去 2 小时。由于您没有看到偏移量,因此我假设您位于 -5:00 时区。这就是为什么在第二种情况(-4:00 字符串)中,必须再减去 1 小时,将其放入前一天。

public static void main(String[] args) {
String ip="2018-05-01T06:47:35.422-05:00";
ZonedDateTime zdt = ZonedDateTime.parse(ip, DateTimeFormatter.ISO_ZONED_DATE_TIME);

// my timezone is: -7:00
System.out.println(zdt.toInstant()); // 2018-05-01T11:47:35.422Z
System.out.println(Timestamp.from(zdt.toInstant())); // 2018-05-01 04:47:35.422
}

关于java - 字符串到 ZonedDateTime 和时间戳转换格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50116094/

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