2011-07-22 5 views
35

私は現在の日付を1970年以降のに渡された秒数に変換する必要があるアンドロイドアプリケーションに持っていなければなりません。日付値の1970年以降の経過秒数を取得する方法は?

私が現在やっていることはこれです。

Calendar cal = new GregorianCalendar(TimeZone.getTimeZone("GMT")); 
cal.set(currentDate.get(Calendar.YEAR), month, currentDate.get(Calendar.DAY_OF_MONTH), 0, 0, 0); 
long timesince1970 = cal.getTime().getTime(); 

もう1つ問題は、私のアプリケーションをドイツで実行する必要があることです。したがって、時間をタイムゾーンに変換し、1970年以降の秒数に変換する必要があります。

上記の情報で正しい結果が得られません。

答えて

93

System.currentTimeMillis()には、Unixエポック(1970年1月1日00:00:00 UTC)からのミリ秒数が表示されます。

1000で割って秒数を取得します。

+0

「システム」から来ているので、ユーザーに日付が変更された場合は、 'currentTimeMillis()'が異なりますか? –

+2

@CliffBurton:はい、そうです。 Androidの携帯電話は通常自動的に時間を同期するように設定されていますが、返される日付は間違っている可能性があります。正確な時間が必要な場合は、通常、何らかのオンラインチェックを行う必要があります。 (N.B .:返される時刻はUTCなので、間違いがない限りDSTやタイムゾーンの影響を受けません) –

3
//long currentTimeMillis()-Returns the current time in milliseconds. 
long millis = System.currentTimeMillis(); 

//Divide millis by 1000 to get the number of seconds. 
long seconds = millis/1000; 
+1

あなたのコードが質問に答える理由を説明する必要があります。 – Markus

関連する問題