2016-06-24 7 views
-4

私はタイムスタンプ:1454716800を持っています。これは02/06/2016 @ 12:00am (UTC)です。 0時間(24時間表示)、0分、0秒です。しかし、私がCalendarオブジェクトとして作成し、時、分、秒を同じ(00:00:00)に設定すると、別の時間に出てきます!どうしてこれなの?なぜ、分、時間、秒をカレンダーのUNIXタイムスタンプと同じに設定するのが間違った時間を与えるのですか?

long timestamp = 1454716800; 

    Calendar theDate = Calendar.getInstance(); 

    //Set our date and adjust the time 
    theDate.setTimeInMillis(timestamp * 1000); 
    theDate.set(Calendar.HOUR_OF_DAY, 0); 
    theDate.set(Calendar.MINUTE, 0); 
    theDate.set(Calendar.SECOND, 0); 

私は間違っていますか?

+1

返されるものは何かを追加してください。 – Konrad

+1

あなたは*別の時間*に出てくることを意味しますか?何を印刷したの? – Tunaki

+0

あなたはどのタイムゾーンにいますか? –

答えて

2

Unixエポックタイムスタンプは明らかにUTCですが、デフォルトのJava Calendarはそうではありません。修正するには:

Calendar theDate = Calendar.getInstance(TimeZone.getTimeZone("UTC")); 
関連する問題