当前位置: 首页 > 知识库问答 >
问题:

如何在java中使用DST时区获取正确的时间(毫秒)

劳法
2023-03-14

我有一个简单的问题:

TimeZone fromTimeZone = TimeZone.getTimeZone("America/Santiago");
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 8);
calendar.set(Calendar.MINUTE, 45);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
System.out.println(calendar.getTime() + " |Mili: " + calendar.getTimeInMillis());

输出:(我的时区是ICT)

Wed Apr 01 19:45:00 ICT 2015 |Milisecond: 1427892300000

问题是:日历在 DST 日返回此时区的错误时间。时区“美国/圣地亚哥”现在应该是UTC-3(参考:http://www.timeanddate.com/worldclock/chile/santiago)。它需要显示:

Wed Apr 01 18:45:00 ICT 2015 |Milisecond: 1427888700000

共有1个答案

严易安
2023-03-14

您尚未将时区从时区应用到日历 。

 类似资料:
  • 我使用的是MySQL5.0。我需要在一个列中存储日期-时间信息。我的意思是使用或列类型。但我对夏冬转换有意见。 当我将这些行取到java Date对象中时,我得到两个相同的日期,显示CET 2:00。而且,当我在MySQL中获取这些行时,我在MySQL中再次得到错误的值: 所以时间戳在我看来没什么用。

  • 我尝试使用,但找不到有效地转换为毫秒的方法。我不是说这是最好的方法,如果你知道一些更好的,我会非常感谢一些指示。

  • 我想从不同的时区获取当前时间(现在)。 例如使用joda datetime库, 我的问题是如何获得Autralian时区的当前时间来获得分区时间戳对象。 谢谢。米希尔·帕雷赫

  • 问题内容: 我知道相反。给定一个时区,我可以通过以下代码片段获取时区偏移量: 我想知道如何从时区偏移量获取时区名称。 鉴于 (以毫秒为单位; +6.00偏移) 我想得到以下任何可能的时区名称的结果: 问题答案: 用

  • 问题内容: 解决的问题 外部设备正在计算并发送非标准的2小时轮班时间戳,这使我非常困惑,并启动了该线程。时区 不会影响自己的时间戳 ,时区仅在以人类可读形式进行转换时适用。 我在UTC时区有时间戳记(距离unix纪元的秒数​​),没有DST(夏令时)。 我想要使​​用DST的“欧洲/布拉格”时区中的时间戳(距Unix纪元的秒数​​)。 我曾经以为unix时间戳不受时区限制,时区仅影响将时间戳转换为