对于我们的俄罗斯租户,我们使用“欧洲/莫斯科”时区。但我们比正确的时间提前了一个小时。
欧洲/莫斯科是世界协调时3小时。但是,当我打印日期格式与欧洲/莫斯科时区得到1小时前的正确时间。
谢谢,西亚玛拉。
您可以使用joda time api,版本需要大于2.5。因为joda time api会在俄罗斯时区从2.5版更改后更新时区数据库。
Date timestamp = sdf.parse("11/17/2014 06:13:19");
TimeZone timezone = TimeZone.getTimeZone("Europe/Moscow");
DateTimeZone tz = DateTimeZone.forTimeZone(timezone);
DateTime jodaDateTime = new DateTime(timestamp, tz);
System.out.println(jodaDateTime.hourOfDay().get());
Java 8:
System.out.println(LocalDateTime.now(ZoneId.of("Europe/Moscow"))
.format(DateTimeFormatter.ofPattern("d.MM.yyyy 'um' HH:mm 'Uhr'")));
我注意到2014年10月俄罗斯时区定义发生了立法变化;很可能你的JRE还不知道。
Java时区更新实用程序应该能够为您解决这个问题。随着时间的推移,更新的时区定义最终也会默认包含在更新的JRE中(尽管现在这对您没有帮助)。
有人能解释一下,当我把过去的日期转换成莫斯科时区时,为什么会增加一个小时? 我使用的是JDK 1.60_12版本。 我目前的系统时区是“欧洲/莫斯科”UTC 3。 此外,请注意,这个过去的日期是在DST(夏令时)时区期间UTC 4,早些时候在俄罗斯使用。2014年10月,俄罗斯时区定义发生了立法变化。从那以后,俄罗斯一整年都在使用UTC 3。 我已经查过这个2014年的老帖子了。 我们的开发人员希
我需要的是特定时区(“俄罗斯/莫斯科”)和用户当地时间之间的时差,时差应以小时为单位。 我遇到的问题,时区的差异有时是错误的计算。我计算Android设备的UTC本地偏移量和UTC远程偏移量之间的差异(小时)。对于大多数用户来说,这很好...但是许多用户都在抱怨这个问题...我无法在手机或模拟器上重现它。“错误”显示的时间差是所有方式少1小时。莫斯科是15:00,欧洲是12:00。但是用户在这里看
函数获取用于本地设备转换的简单日期格式: 产出: 日期=2018-04-22 14:30 上面的示例是基于伦敦时区的,而当我们在IST时区中尝试时,它返回的是正确的时间。 我们通过检查时区的函数来处理不同的DST时间,但它不起作用。 我肯定与夏令时有关,但我不明白。谢谢你的帮助?
> 在Google云控制台中创建新项目 在空云数据存储中创建一个新实体。当提示输入位置时,选择,根据Cloud Datastore位置表示欧洲的多个区域。 接下来,创建新的Google App Engine(standard env)应用程序并将其部署到同一个项目中。 Cloud Datastore Locations还解释说: Google Cloud Platform项目的位置设置同时适用于C
有些时区会切换到夏令时,有些不会。我知道俄罗斯不使用这个时间,而乌克兰使用夏令时。 正如我从这个链接中知道的.NET 时区信息来自奥尔森时区莫斯科使用俄罗斯标准时间,基辅(乌克兰)使用 FLE 标准时间。 我的测试是: > 冬季,俄罗斯,DateTimeKid. Utc 冬天,俄罗斯,日期时间。当地的 Summer,俄罗斯,DateTimeKind.Utc 夏天,俄罗斯,DateTimeKind。
我想将一个没有时区的DateTime字段从欧洲中部时间转换为UTC(使用SQL在Postgres中更新)。这里存在一个问题,即DateTime可能是夏令时或冬令时,以便DateTime是utc+1或utc+2。其关键是用边界方法求DST边界。 我试图编写一个存储过程来找到上面提到的DST边界,但除了这个之外,我没有找到任何简单合适的解决方案:https://www.keithf4.com/post