将millis添加到日期

时间:2013-06-07 14:03:36

标签: java scala date

最近我偶然发现了一个奇怪的行为,同时向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

2 个答案:

答案 0 :(得分:2)

夏令时结束10月底。因此,第二次addWeek调用会在DST结束时更改您的日期。

答案 1 :(得分:1)

根据您的区域设置,夏令时可能会在此期间结束。当DST结束时,重复一个小时。

看起来你在德国。在该地区,夏令时于10月27日星期日结束。