最近我偶然发现了一个奇怪的行为,同时向Date
添加了一些毫秒。为什么第二个示例会生成11:00
而不是12:00
?
def addWeek(s: String) = {
val df = new java.text.SimpleDateFormat("yyyy/MM/dd HH:mm")
val utcMillisSinceEpoch = df.parse(s).getTime
val weekMillis = 1000L * 60L * 60L * 24L * 7L
df.format(new java.util.Date(utcMillisSinceEpoch + weekMillis))
}
addWeek("2013/10/01 12:00") // 2013/10/08 12:00
addWeek("2013/10/21 12:00") // 2013/10/28 11:00
addWeek("2013/11/21 12:00") // 2013/11/28 12:00
答案 0 :(得分:2)
夏令时结束10月底。因此,第二次addWeek
调用会在DST结束时更改您的日期。
答案 1 :(得分:1)
根据您的区域设置,夏令时可能会在此期间结束。当DST结束时,重复一个小时。
看起来你在德国。在该地区,夏令时于10月27日星期日结束。