[解決済み] Javaで現在の日付/時刻を取得する方法 [重複]について
質問
Javaで現在の日付/時刻を取得するのに最適な方法は何ですか?
どのように解決するのですか?
どのような日付/時刻の形式が必要かによります。
-
日付/時刻を1つの数値で表したい場合は、次のようになります。
System.currentTimeMillis()
は、UNIXエポックからのミリ秒数で表現されます (これは、Javaのlong
). この値は UTC タイムポイントからの差分であり、ローカルのタイムゾーンには依存しません。 1 . -
もし、日付/時刻を構成要素(年、月など)に数値でアクセスできるフォームにしたい場合は、以下のいずれかを使用することができます。
-
new Date()
を与える。Date
オブジェクトを現在の日付/時刻で初期化します。 問題なのはDate
APIメソッドのほとんどは欠陥があり......そして非推奨となっています。 -
Calendar.getInstance()
を与える。Calendar
オブジェクトは現在の日付/時刻で初期化され、デフォルトのLocale
とTimeZone
. その他のオーバーロードでは、特定のLocale
およびTimeZone
. カレンダーは動くが・・・APIが面倒なのは変わらない。 -
new org.joda.time.DateTime()
を与えます。 城田時間 オブジェクトは現在の日付/時刻で初期化され、デフォルトのタイムゾーンとクロノロジーを使用します。 他にもたくさんのJodaの代替案があります...多すぎてここでは説明できません。 (ただし、Joda time にはパフォーマンス上の問題があるとの報告もあります。 https://stackoverflow.com/questions/6280829。 ) -
を呼び出すと、Java 8 では
java.time.LocalDateTime.now()
とjava.time.ZonedDateTime.now()
という表現が与えられます。 2 は、現在の日付/時刻を表します。
-
Java 8以前は、これらのことを知るほとんどの人が、以下のことを推奨していました。 ジョダタイム は、タイムポイントや継続時間の計算を含むことを行うための最高のJava APIを持っているとして(断然)。
Java 8 以降では、標準の
java.time
パッケージの使用を推奨します。 Joda timeは現在quot;obsolete"とみなされており、Jodaのメンテナは移行を推奨しています。
3
.
1 -
System.currentTimeMillis()
は、システム時刻を表します。 システムクロックは(公称)UTCに設定されるのが普通ですが、ローカルUTCクロックと真のUTCの間には差(デルタ)が生じます。 この差の大きさは、システムの時計がUTCとどれだけうまく同期しているか(そしてどれだけ頻繁に同期しているか)に依存します。
2 - LocalDateTimeは、タイムゾーンを含まないことに注意してください。 javadocに書いてあるように
オフセットやタイムゾーンなどの追加情報なしには、時間軸上のある瞬間を表すことはできません。
3 - 注意:移行しなくても、あなたのJava 8コードは壊れませんが、Jodaコードベースはいずれバグフィックスや他のパッチを受けなくなる可能性があります。 2020-02 現在、Joda の公式な "end of life" は発表されていませんし、Joda API は Deprecated としてマークされていません。
関連
-
eclipseにプロジェクトをインポートした後、Editorにmain typeが含まれない問題
-
スレッド "main" で例外発生 java.lang.ArrayIndexOutOfBoundsException: 0 at One1.main(One1.java:3)
-
spring aop アドバイスからの Null 戻り値が、サマリーのプリミティブ戻り値と一致しない。
-
[解決済み] この2回(1927年)を引き算すると、なぜおかしな結果になるのでしょうか?
-
[解決済み] JavaScriptでタイムスタンプを取得する方法は?
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Java の配列を表示する最も簡単な方法は何ですか?
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
java.util.NoSuchElementException 原因解析と解決方法
-
スタイルが読み込まれず、ブラウザのコンソールでエラーが報告される。リソースはスタイルシートとして解釈されますが、MIMEタイプtext/htmlで転送されます。
-
eclipse で「アクセス制限: タイプ 'HttpServer' は API ではありません」というプロンプトが表示される。
-
コンストラクタの呼び出しは、コンストラクタのエラー理解の最初のステートメントである必要があります。
-
eclipseにプロジェクトをインポートした後、Editorにmain typeが含まれない問題
-
javaコンパイル時のエラー:不正な文字 '\ufeff' に対する解決策です。
-
mavenプロジェクトのテストエラー java.lang.ClassNotFoundException: org.glassfish.jersey.client.ClientConfig の問題を解決する。
-
IDEA パッケージステートメントの欠落
-
ローカルリソースのロードが許可されていない場合の解決策
-
[解決済み] 現在の日付と時刻を取得する方法