gpt4 book ai didi

java - 时间戳格式添加 17 小时

转载 作者:行者123 更新时间:2023-12-01 17:31:04 25 4
gpt4 key购买 nike

问题SimpleDateFormat 似乎在实际时间戳上添加了 17 小时。

这应该是非常简单的事情。我不确定我做错了什么。我有一种方法可以将很长的纳秒转换为格式化的时间戳。又增加了 17 个小时。这是我的SSCCE

package playground;

import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.concurrent.TimeUnit;

/**
*
* @author kentcdodds
*/
public class NanosecondsToString {

public static void main(String[] args) {
long nanoseconds = 234236402;
Timestamp ts = new Timestamp(TimeUnit.MILLISECONDS.convert(nanoseconds, TimeUnit.NANOSECONDS));
SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss:SSS");
String formatted = format.format(ts);
System.out.println(formatted);
}
}

输出:17:00:00:234

我现在是山区标准时间

最佳答案

您必须将时区设置为 UTC

public static void main(String[] args) throws IOException {
long nanoseconds = 234236402;
Timestamp ts = new Timestamp(TimeUnit.MILLISECONDS.convert(nanoseconds, TimeUnit.NANOSECONDS));
SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss:SSS");
format.setTimeZone(TimeZone.getTimeZone("UTC"));
String formatted = format.format(ts);
System.out.println(formatted);
}
默认情况下,

SimpleDateFormat 会将时间戳转换为当前时区的时间。所以有必要告诉它假设它是UTC。否则,您可以使用jodatime's interval class .

关于java - 时间戳格式添加 17 小时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10853594/

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