問題タブ [offsetdatetime]
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 8 で OffsetDateTime が '2016-08-24T18:38:05.507+0000' を解析できない理由
表現
OffsetDateTime.parse("2016-08-24T18:38:05.507+0000")
次のエラーが発生します。
java.time.format.DateTimeParseException: テキスト '2016-08-24T18:38:05.507+0000' をインデックス 23 で解析できませんでした
一方で、
OffsetDateTime.parse("2016-08-24T18:38:05.507+00:00")
期待どおりに動作します。
DateTimeFormatter のドキュメント ページでは、例としてコロンのないゾーン オフセットについて言及しています。私は何を間違っていますか?Javaをなだめるために日付文字列を台無しにしたくありません。
java - 異なるインスタンス化メソッドを使用すると、OffsetDateTime オブジェクトの LocalDateTime と ZoneOffset の値が異なる
を使用して OffsetDateTime オブジェクトを作成する
- ofInstant(instant, zoneid) または via
- 流暢なインターフェース
流暢なインターフェイスを介したインスタンス化が夏時間の境界を超える場合、(compareTo アサーションを使用するか、ZoneOffset フィールドと LocalDateTime フィールドを比較することによって) 等しくないオブジェクトにつながる可能性があります。次の例を検討してください。
10 月中旬の中央ヨーロッパ (ZoneId 'Europe/Berlin') では、最初の呼び出し ( ) をplusMonths()
再利用するため、2 つの等しくないオブジェクトが生成されます。offset
now()
オフセットが再計算されない理由を知っている人はいますか?
単体テスト中にこの問題に遭遇しましたが、私が思いついた唯一の回避策は、a) 流れるようなインターフェイスを使用しないか、b) 流れるようなインターフェイスを使用している間はクロス DST ジャンプを使用しないことでした。残念ながら、OffsetDateTime 以外のものを使用することはできません。
spring - Spring JDBC がタイムゾーンでタイムスタンプのオフセットを失う
Java 8 + Spring 5.1.5R + mybatis 3.5.6 を PostgreSQL 11 で使用しています。
このような日付、タイムスタンプ、タイムスタンプtz列で選択クエリを実行しました。
ibatis のログはこのように表示されます。
t_timestamptz 列にはオフセットがあり、t_timestamp 列にはオフセットがありません。
しかし、java.sql.Timestamp と java.sql.Date しか表示されません。
オフセット付きのtimestamptz列の値とオフセットなしのtimestamp列の値を取得するにはどうすればよいですか?