問題タブ [zoneddatetime]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
4988 参照

java - ZonedDateTime の SQL データベースへの永続性

こんにちは、
私は世界中で使用される Web アプリケーション サービスを作成しています。
したがって、日時の値を UTC で保存し、それらをエンド ユーザーへの壁時間の時計で表す必要があります。
スタックオーバーフローを読んだ後、次のことを行う必要があることを理解しました。

  1. DB の列タイプとしてタイムスタンプを使用します (現在の MariaDB 10.1.20)
  2. Java で ZonedDateTime を使用します (私は java8 を使用します)

これらの値を変換しているときに問題が発生しました。
JDBC を使用しているため、次の変換を行う必要があります。

私のコード:

私が使用する場合:

false が返されます (ドメイン モデルのオーバーライドされた equal メソッドでそれらを比較する必要があります)
以下は両方の出力です。

zonedDateTimeBeforeSave: 2017-01-24T20:18:17.720Z
zonedDateTimeAfterSave: 2017-01-24T20:18:17Z

質問:

  1. 私は私の選択で正しいですか?おそらく、別の列またはJavaタイプを使用する必要があります...
  2. 変換を行うのは正しいですか。他にもっと良い方法があるかもしれません

ありがとうございました

  1. 編集:マット・ジョンソンの助けの後、私は問題が実際にあることを理解しました.datetimeをDBに保存すると、分数は保存されませんが、そうすべきです. 参考までに列の型はtimestamp(6)です。
  2. 編集:ZonedDateTimeの代わりにjava.time.Instantを使用するようになりました
0 投票する
3 に答える
22305 参照

java - ZonedDateTime または Instant で時分秒を 00 に設定します。

Utc 形式の日付文字列があります -

そして、 ZonedDateTimeのJava日付表現で以下の形式に変換したいと思います。

ZonedDateTimeが出力されると、表示されるはずです

次のコードを試しました-

出力:

開始時刻を ZonedDateTime で正規化したいと考えています。サードパーティのライブラリではなく、Java ライブラリのみを使用してそれを実現したいと考えています。