gpt4 book ai didi

java - java的时区问题

转载 作者:行者123 更新时间:2023-12-01 13:06:53 26 4
gpt4 key购买 nike

当我在 Windows 机器中运行以下代码时

Calendar cal = Calendar.getInstance();
TimeZone iz = TimeZone.getDefault();
System.out.println(iz.getOffset(cal.getTimeInMillis()) + "\t" + cal.getTime()
+ "\t" + cal.getTimeZone().getDisplayName() + "\t" + iz.getDSTSavings());

输出:

10800000    Mon Apr 21 11:55:11 FET 2014    Further-Eastern European Time   0

但是当从我 friend 的机器上执行相同的代码时,它会显示:

10800000    Mon Apr 21 11:55:11 FET 2014    Eastern European Time   3600000

Time Zone : (UTC+02:00) E. Europe

对于其他时区,我得到了正确的结果,但对于这个时区,它给出了一些奇怪的问题。

请告诉我可能是什么问题?时区取决于哪些参数?我用谷歌搜索了这个问题,但找不到解决方案或原因。

<小时/>

基本上我想将来自机器的任何时间转换为 GMT/UTC基于偏移量,但在这种情况下,当夏令时正在进行时,该场景会失败。提前致谢。

以下是更多信息:我的机器的日历对象: java.util.GregorianCalendar[time=1398072046600,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Europe/Minsk",offset=10800000,dstSavings=0,useDaylight=false,transitions=69,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2014,MONTH=3,WEEK_OF_YEAR=17,WEEK_OF_MONTH=4,DAY_OF_MONTH=21,DAY_OF_YEAR=111,DAY_OF_WEEK=2,DAY_OF_WEEK_IN_MONTH=3,AM_PM=1,HOUR=0,HOUR_OF_DAY=12,MINUTE=20,SECOND=46,MILLISECOND=600,ZONE_OFFSET=10800000,DST_OFFSET=0]

friend 机器的日历对象: java.util.GregorianCalendar[time=1398072634915,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Europe/Minsk",offset=7200000,dstSavings=3600000,useDaylight=true,transitions=121,lastRule=java.util.SimpleTimeZone[id=Europe/Minsk,offset=7200000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=2,startMonth=2,startDay=-1,startDayOfWeek=1,startTime=7200000,startTimeMode=1,endMode=2,endMonth=9,endDay=-1,endDayOfWeek=1,endTime=7200000,endTimeMode=1]],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2014,MONTH=3,WEEK_OF_YEAR=17,WEEK_OF_MONTH=4,DAY_OF_MONTH=21,DAY_OF_YEAR=111,DAY_OF_WEEK=2,DAY_OF_WEEK_IN_MONTH=3,AM_PM=1,HOUR=0,HOUR_OF_DAY=12,MINUTE=30,SECOND=34,MILLISECOND=915,ZONE_OFFSET=7200000,DST_OFFSET=3600000]

最佳答案

您的时区是 UTC+3,您 friend 的时区是 UTC+2,但他们采用夏令时(3600000 毫秒 = 1 小时),这意味着他们的有效时间是 UTC+3。因此,你的 friend 最终会和你有同样的时间。这看起来完全正常。如果您的 friend 不住在东欧时区,他应该调整计算机上的系统设置。

关于java - java的时区问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23194145/

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