有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在Java中不同时区和不同DST之间转换unix时间戳

问题解决了外部设备正在计算并发送非标准的2小时移动时间戳,这让我非常困惑,并启动了这个线程时间戳本身不受时区的影响,只有在从人类可读形式转换时,时区才适用


我有UTC时区的时间戳(unix历元的秒数),没有DST(夏令时)

我想要“Europe/Prague”时区的时间戳(unix epoch的秒数),它使用DST

我曾经认为unix时间戳不受时区的限制,时区只影响将时间戳转换为人类可读格式的过程。但事实并非如此。我越是试图转换它(使用日历和时区类),我就越是困惑和迷茫

此代码未按预期工作:

Calendar cal = GregorianCalendar.getInstance(TimeZone.getTimeZone("UTC"));
cal.setTimeInMillis(ts*1000);
cal.setTimeZone(TimeZone.getTimeZone("Europe/Prague"));
return cal.getTimeInMillis()/1000;

共 (0) 个答案