0

最近、にミリ秒を追加しているときに、奇妙な動作に出くわしましたDate11:002 番目の例では、代わりに が生成されるのはなぜ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
4

2 に答える 2

2

サマータイムは10月末で終わります。したがって、2 回目のaddWeek呼び出しでは、日付が DST の終わりにシフトされます。

于 2013-06-07T14:07:41.400 に答える
1

地域によっては、その頃にサマータイムが終了する場合があります。DST が終了すると、1 時間が繰り返されます。

ドイツにいるようです。そのロケールでは、DST は 10 月 27 日日曜日に終了します。

于 2013-06-07T14:06:28.783 に答える