gpt4 book ai didi

java - Joda-Time 日期时间 欧洲/柏林夏令时

转载 作者:行者123 更新时间:2023-12-01 17:13:50 24 4
gpt4 key购买 nike

如何使用 Joda-Time 解析日期字符串datetime 使用正确的时区和夏令时?

作为 scala 中的示例,我尝试解析字符串“2014-04-07 01:00:00.000”(没有时区信息)。该日期来自 MySQL,应该是 tz Europe/Berlin +01:00。我喜欢的是根据 2014-04-07 00:00:00+01:00 的 joda 日期时间,这是欧洲/柏林时区目前不在夏令时(GMT +1)。

val fmt = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.SSS").withZone(DateTimeZone.forID("Europe/Berlin"))
val dt = fmt.parseDateTime("2014-04-07 01:00:00.000")

不幸的是,Joda-Time 将日期解析为 2014-04-07T01:00:00.000+02:00,这是当前错误的偏移量(如果是 01:00,则为 02:00)

有什么想法如何让 Joda-Time 解析具有正确 DST 偏移量的日期吗?

最佳答案

Joda Time 是正确的。您对柏林的 +01:00 假设是不正确的。您没有考虑夏令时。

根据this page在 TimeZoneConverter.com 获取时区“Europe/Berlin”,Daylight Saving Time (夏令时)于 2014 年 3 月 30 日星期日凌晨 02:00:00 开始当本地时钟调快 1 小时时。根据维基百科列表time zone names ,这意味着柏林从比 UTC 早一小时 (+01:00) 变为早两小时 (+02:00)。

关于java - Joda-Time 日期时间 欧洲/柏林夏令时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22917538/

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