gpt4 book ai didi

UTC 0日期部分中的java sql时间戳出错

转载 作者:行者123 更新时间:2023-11-29 10:08:44 25 4
gpt4 key购买 nike

我正在使用以下代码获取需要传递给某些 sql 查询的当前系统时间

java.util.Date date = new java.util.Date();
long t = date.getTime();
java.sql.Timestamp sqlTimestamp = new java.sql.Timestamp(t);

log.info("Current Time:" + sqlTimestamp.toString());

现在我还需要获得 UTC 0 时间(不是 GMT 0)

log.info("当前时间:"+ sqlTimestamp.toString());

当前时间:2019-01-04 15:04:50.735

我正在尝试下面的代码,但看起来没有正确获取日期部分

 log.info("Current UTC Time:" + new java.sql.Timestamp(Instant.now().atOffset( ZoneOffset.UTC ).toEpochSecond()).toString());

当前UTC时间:1970-01-19 02:36:36.299

请让我知道我需要什么更正

最佳答案

tl;dr

改用现代 java.time 类。

Instant
.now()
.toString()

2019-01-23T01:23:45.123456789Z

java.time

您正在使用多年前完全被 java.time 类取代的可怕的旧日期时间类。

捕捉当下。

Instant instant = Instant.now() ;

生成文本以标准 ISO 8601 格式表示该时刻。

String output = instant.toString() ;

如果中间的 T 打扰了您,请替换它。但我鼓励您坚持使用严格的 ISO 8601 日志记录格式。

String outputModified = output.replace( "T" , " " ) ;

get UTC 0 time (not GMT 0)

UTC 与 GMT 相同,实际上,对于常见的面向业务的应用程序而言。

关于UTC 0日期部分中的java sql时间戳出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54036858/

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