【发布时间】:2020-11-26 18:10:31
【问题描述】:
我正在学习 Java,并尝试了解小时制的工作原理。
我使用的小时格式是HH:mm:ss。
我想在冬季将此字符串转换为 UTC+1 小时,在夏季将其转换为 UTC+2。
要知道日期,我使用格式:yyyy/MM/dd。
下面是我使用的变量类型的示例。
谁能帮我解决这个问题?
String Hour = "14:12:13";
String Date = "2019:11:12";
【问题讨论】:
-
当您说“转换为 UTC+2”时,您的时间实例当前具有哪个时间偏移量?你能提供一个 MWE 的代码吗?
-
您的示例日期和您的日期格式不匹配。
2019:11:12不是格式为yyyy/MM/dd。 -
不要这样做! Java 有一些已经有时间的类。查看
LocalTime和ZoneDateTime。如果您退后一步并解释您要解决的问题可能会有所帮助。 -
这个问题是不同国家对“夏天”的定义不同。我(德国人)曾经和一个德克萨斯人定期进行 Skype 聊天,结果发现,虽然我们都有夏令时,但我们的 DST 时间段不同,所以每年春季和秋季都有一个两周的时间段,我们之间的差异时区是错误的。所以,我完全同意@Matthew,你甚至不应该尝试自己实现它,而应该依赖预先存在的实现。 (顺便说一句,即使是 Sun Microsystems 的第一次尝试也很糟糕,不得不在 Java 8 中替换。)
-
仅供参考:这里不用为你道歉英语,这实际上很好。这个网站看到许多非英语母语的人。并且不需要“提前致谢”,因为该网站旨在简洁、重点突出,并避免闲聊和无关的讨论。我针对这些要点编辑了您的问题。您在这里唯一的错误是在发布之前没有彻底搜索 Stack Overflow。基本的日期时间问题已被多次询问和回答。