java - SimpleDateFormat 解析错误的时间

标签 java parsing timezone

我使用 java.text.SimpleDateFormat 从格式为“HH:mm”的字符串中解析时间。例如 10:3022:10

SimpleDateFormat formatter = new SimpleDateFormat("HH:mm");
Date parsed = formatter.parse((String) value);

格式化程序时区是我的设备的默认时区(莫斯科时区 +04:00)。时间字符串为 10:30 并且 解析后,我期望莫斯科时区的 10:30 01/01/1970 但得到 09:30 01/01/1970 。我做错了什么?为什么我会出现这种行为?

最佳答案

从 1931 年到 1981 年,莫斯科采用 UTC+3。 http://www.timeanddate.com/worldclock/timezone.html?n=166&syear=1970

时区会随着时间的推移而变化,通常是出于政治原因。

关于java - SimpleDateFormat 解析错误的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11517846/

相关文章:

PHP,MySQL - 如何显示发布文章的正确时间取决于客户端时区

java - 如何将时区字符串转换为 Java 中的 TimeZone 对象?

java - JPA2.0 和 EE6 使我的实体保持同步

java - 返回类实例的抽象方法

java - Android后台HTTP请求不起作用?

parsing - 如何正确解析时区代码

c++ - PathGetArgs/PathRemoveArgs 与 CommandLineToArgvW - 有区别吗?

java - 无法在 Java 8 中使用 DateTimeFormatter 和 ZonedDateTime 从 TemporalAccessor 获取 ZonedDateTime

java - 使用 AOP 的 Spring session 范围 bean 中的问题

java - 如何通过命令行参数覆盖属性文件值?