日付に変換したいタイムスタンプがあります。このタイムスタンプを試してみました: 1336425840。これは、2012 年 5 月 7 日月曜日 21:24:00 GMT である必要があります。ここで、GMT はエミュレーターに設定するタイムゾーンです。私はこれを試しました:
final Calendar c = Calendar.getInstance();
c.setTimeInMillis(1336425840*1000);
Date d = c.getTime();
Log.i("MyTag", "Hours: " + d.getHours());
結果は次のとおりです。時間: 23。
したがって、返される日付は、システムに設定されているタイムゾーンである GMT+2 に従って計算されるようです。エミュレーターのタイムゾーンが GMT に設定されているように見えるため、g.hetHours() が 21 を返すことを期待していました。
また、そのタイムスタンプは、mktime を使用して C で実際の日付を読み取った結果であり、正しいタイムスタンプを返すようです。しかし、Java は別のタイムゾーンを参照しているようです。私は何か間違ったことをしていますか?Mon, 07 May 2012 21:24:00 GMT が返されないのはなぜですか?