251786 <-> 00:04:11,786
Date date = new Date(251786);
DateFormat formatter = new SimpleDateFormat("HH:mm:ss,SSS");
String dateFormatted = formatter.format(date);
ただし、dateFormatted の値は 18:04:11,786 です。
HHはどうなるの?
251786 <-> 00:04:11,786
Date date = new Date(251786);
DateFormat formatter = new SimpleDateFormat("HH:mm:ss,SSS");
String dateFormatted = formatter.format(date);
ただし、dateFormatted の値は 18:04:11,786 です。
HHはどうなるの?
Date コンストラクター (251786) の引数は、エポック (または 1970 年 1 月 1 日 00:00:00 GMT) からほぼ 252 秒を示しています。マシンが GMT で実行されていないと仮定すると、ローカル タイム オフセット (1970 年 1 月 1 日 00:04:11,786 GMT) が取得され、GMT-6 にいると推測されます (つまり、タイムゾーンは 6 時間遅れています)。 GMT であるため、時間フィールドに 18 が表示されます (または午後 6 時)。
http://docs.oracle.com/javase/6/docs/api/java/util/Date.html#Date(long)
Date(long date) Date オブジェクトを割り当て、初期化して、「エポック」として知られる標準基準時刻 (1970 年 1 月 1 日 00:00:00 GMT) からの指定されたミリ秒数を表します。
私は@Elliottに同意します。それに加えて、もう少し説明があります:)。
GMT-6 (GMT の 6 時間遅れ) にいるため、標準でthe epoch
はJanuary 1, 1970, 18:00:00
なくJanuary 1, 1970, 00:00:00 GMT
そして、コンストラクターに251786
渡す引数()が何であれ、に追加されます。あなたの場合は+になります-> 表示される結果は になります
。Date
the epoch
January 1, 1970, 18:00:00 000
251786
January 1, 1970, 18:04:11 786
EEE, d MMM yyyy hh:mm:ss,SSS
パターンや他のパターンで試してみると、より理解が深まります。
Date date = new Date(251786);
DateFormat formatter = new SimpleDateFormat("EEE, d MMM yyyy hh:mm:ss,SSS");
String dateFormatted = formatter.format(date);
絶対に 4 分 11 秒です。
時間を取得するには、ミリ秒の引数を増やす必要があります。