2012-03-22 13 views
-2

私は、JavaのDateクラスの非常に奇妙な行動を持っている:これはなぜ起こるかJavaの日の奇妙な行動

System.out.println(new Date().toGMTString()); 
    long l = 1332452310L; 
    Date d = new Date(l); 
    System.out.println(d.toGMTString()); 

は私に

22 Mar 2012 22:00:42 GMT 
16 Jan 1970 10:07:32 GMT 

を与えますか?

+0

に供給する秒からミリ秒に1000倍の転送に私はあなたが何を期待し、J2SE 1.6 –

+3

を使用していますか?日付コンストラクタの長い引数は、1970年1月1日からのミリ秒数です。 – aioobe

+0

new Dateが現在提供しています。長いパラメータは1970年からのミリ秒を示します。 –

答えて

9

あなたの長いlは秒単位の時間で、あなたはミリ秒単位での時間を行う必要があります。

long l = 1332452310L * 1000L; 
1

あなたはどのあなたがすべきではなく、ミリ秒よりも、秒数を与えています。

0

日付(long)はミリ秒を想定しています。あなたの価値を1000倍にして、あなたが期待するものが得られるかどうかを確認してください。