問題タブ [sqldatetime]
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.
java - 使用する java.sql.Date toLocalDate のタイムゾーン
java.sql.Date
メソッドがあることに驚きましたtoLocalDate()
。
java.util.Date
またはjava.time.Instant
同等の方法がありません。では、 「LocalFoo」または「OffsetBar」を取得するには、常に を指定java.time
する必要があるようです。ZoneId
の javadoc からjava.sql.Date#toLocalDate()
:
この Date オブジェクトを LocalDate に変換します。変換により、ローカル タイム ゾーンでこの Date と同じ日付値を表す LocalDate が作成されます
「ローカルタイムゾーン」とはどのタイムゾーンですか? データベースまたは JVM の設定に依存しますか?
java - SQL DATE を LocalDate にマップする方法
を列に格納し、変更せずに取得したいLocalDate
。とはDATE
両方とも、定義上「ローカル」タイプです。したがって、タイムゾーンの概念は決して干渉すべきではありません。DATE
LocalDate
以下のコードは、DATE
メモリ内データベースに列を持つテーブルを作成する最小限の例です。Maven アーティファクトcom.h2database:h2:1.4.192
はクラスパスにある必要があります。
まず、メソッドinsert
とを定義しretrieve
ます。
insert
このメソッドは単一引用符で囲まれたtoString
値を使用するLocalDate
ため、Java™ がタイムゾーンのあいまいさを作成する機会がないことに注意してください。ここで、毎回異なる timzone 設定で 1insert
回と数回呼び出します。retrieve
次に、以下が出力されます。
データベーステーブルが変更されないと仮定して、無条件retrieve
に挿入された同じ値を返すようにメソッドを記述する方法は?