エポックタイムが与えられた場合:例えば(1513213212)今は午前1時から1になるはずです。それを今日の時間に変換するにはどうすればいいですか?それは数学(除算、mod)を使用してそれを行うことは可能ですか?エポックタイムを時間に変換する
答えて
数学を使うだけでは不可能に近いでしょう。 (うるう年とすべて)。すべての難しい作業を行う確立されたAPIを使用する方がよいでしょう。
これを行うには、次の方法を使用できます。
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(1513213212* 1000L);
cal.setTimeZone(TimeZone.getTimeZone("UTC"));
System.out.println(cal.get(Calendar.HOUR));//12 hour clock
System.out.println(cal.get(Calendar.HOUR_OF_DAY));//24 hour clock
若者に古くなった古い「カレンダー」クラスを使用するよう教えてください。今日は、Javaの最新の日付と時刻APIである '' java.time'(https://docs.oracle.com/javase/tutorial/datetime/)の方がはるかに優れています。 –
私たちは、「時間帯」が求められたときとは異なる質問を解釈しましたか? 2番目の値が1513260000だった場合、正解として14を理解しました。あなたのコードは2を印刷します。 –
私はOPが若いかどうか分かりません。あなたは正しいです、私は12時間形式を使用していました。 24時間形式も追加されました。 – 11thdimension
使用java.time
、また、JSR-310として知られている最新のJavaの日付と時刻のAPI:あなただけの数学をやってみたかった場合でも
01:00:12
1
:
LocalTime timeOfDay = Instant.ofEpochSecond(1513213212L)
.atOffset(ZoneOffset.UTC)
.toLocalTime();
System.out.println(timeOfDay);
int hourOfDay = timeOfDay.getHour();
System.out.println(hourOfDay);
このプリント私はまだそれのために標準的なライブラリメソッドを使用することを好むでしょう:
long epochSeconds = 1513213212L;
// convert the seconds to days and back to seconds to get the seconds in a whole number of days
long secondsInWholeDays = TimeUnit.DAYS.toSeconds(TimeUnit.SECONDS.toDays(epochSeconds));
long hourOfDay = TimeUnit.SECONDS.toHours(epochSeconds - secondsInWholeDays);
System.out.println(hourOfDay);
これも1
を出力します。
あなたの意図は「エポックタイムを与えられました:例えば(1513213212)私は1 AMなので今はUTCです」あなたの意見では、この意図を最も明確に表しているのはどれですか?これは私が選ぶために使うものです。
MadProgrammerはhis/her commentで日付と時刻の計算が複雑であるため、日付と時刻のAPIに任せておかなければなりませんが、これはあまりにも複雑な数式で正しい回答。それはうるう秒の問題を無視することが安全であるかどうかにかかっています。もし数学的解法に行くなら、この仮定を確認してください。個人的にはとにかく使用しません。
- 1. このJSON天気データ(エポックタイム)を現地時間に変換するには
- 2. エポックタイムに変換された時間が間違っています
- 3. エポックタイムを特定のタイムゾーンで人間が読めるように変換する
- 4. 時を時間に変換するjava
- 5. Oracleの24時間時間を12時間に変換する
- 6. ハープ/ハイブでエポックタイムをPSTゾーンに変換する
- 7. Python2 datetime - オフセット付きのエポックタイムをUTCタイムスタンプに変換する
- 8. ローカル時間にGMT時間に変換
- 9. 秒の差がゼロのエポックタイムの計算時間が5:30時間増える
- 10. 時間と時刻を変換する
- 11. 開始時間と終了時間を時間間隔に変換するPHP
- 12. カウントダウン秒を時間に変換する
- 13. 時間をフロートに変換する
- 14. ジョーダタイム変換時のゾーン時間をミリ秒に換算する
- 15. 長い時間を残りの時間に変換する
- 16. 時間帯を時間に変換するPython?
- 17. Javaで24時間を12時間に変換する
- 18. 時間、分、秒を時間に変換する
- 19. 特定の時間を現地時間に変換する
- 20. 夏時間スイッチで入力時間をnullに変換する
- 21. 時間と時刻をUTCに変換
- 22. 時間と分で標準時間に軍事時間を変換するR
- 23. 時間に文字タイプの時間(24時間フォーマット)を変換するR
- 24. エポックタイムを標準の日時に変換するにはどうすればよいですか?
- 25. タイムゾーン間の時間変換
- 26. エポック時間変換
- 27. Excel時間変換
- 28. Pyschools時間変換
- 29. PST時間変換
- 30. Rubyで12時間24時間形式に変換する
あなたはMathを使うことができますが、確かにLocalTimeクラスは理由のために存在します –
* "math(division、mod)を使用するだけですか?" * - 厳密に言えば、そうですが、日付/時刻の数学は複雑で、多数のエッジケースをカバーする必要があります(1日に24時間、1年に365日という時間は必ずしもありません)。あなたは、Java 8以降で利用可能なDate/Time APIを使用する方が良いですか、本当に詰まっている場合は、Calendarかjava.util.Date – MadProgrammer
これを見てください:https://stackoverflow.com/質問/ 30709897/convert-millisecond-to-joda-date-for-for-zone-0000 –