3
import org.joda.time.LocalDateTime;
import java.util.Date;

この日付または次の日付で、それはすべてOKです:

  • new LocalDateTime(new Date(0,0,1,2,30))— 1900-01-01T02:30:00.000
  • new LocalDateTime(new Date(111,4,24,19,51))— 2011-05-24T19:51:00.000

しかし、以前の日付では理解できないことがあります。

  • new LocalDateTime(new Date(0,0,1,2,29,50))— 1900-01-01T01:59:50.000
  • new LocalDateTime(new Date(0,0,1))— 1899-12-31T23:30:00.000
  • new LocalDateTime(new Date(-50,0,1))— 1849-12-31T23:30:20.000
  • new LocalDateTime(new Date(-116,6,4))— 1784-07-03T23:30:20.000

誰が知っていますか、これは何ですか、そしてこの問題を防ぐ方法は?

4

1 に答える 1

3

どのタイムゾーンを使用していますか?1900年1月1日の午前2時頃に、時計の不連続性に対処しているようです。つまり、特定の時間がローカルクロックによってスキップされ、公式には存在しません。また、DSTの変更である可能性もあります。ただし、最後の3行の一貫した違いは奇妙に見えます。おそらく、JavaのCalendarとJoda Timeは異なるバージョンのタイムゾーンデータベースを使用しており、そのうちの1つに変更がありません。

リンク先のサイトで変更のタイムゾーンを確認できます。

于 2011-05-24T16:04:42.393 に答える