TL; DR
Interval.parse(input)
.getEnd()
.atOffset(ZoneOffset.UTC)
.format(
DateTimeFormatter.ISO_LOCAL_DATE_TIME
)
Interval
は、期間のためのあなたの入力文字列が標準ISO 8601形式です。それは、最後にZ
がズールーの略でUTCを意味するモーメントのペアを表します。スラッシュ文字は開始と終了を区切ります。
プロジェクトにあるInterval
クラスのものを解析します。
Interval interval = Interval.parse(input) ;
Instant
停止瞬間を抽出します。
Instant instant = interval.getEnd() ;
OffsetDateTime
私はあなたがInstant
のようにオブジェクトを操作するのではなく文字列を操作する必要があると思います。しかし、書式設定された文字列を生成するには、Instant
をOffsetDateTime
に変換してください。
OffsetDateTime odt = instant.atOffset(ZoneOffset.UTC) ;
また、そのようなZ
としてオフセット/ゾーンインジケータを削除するには、通常は悪い考えです。結果として得られる文字列は、その意味に関してあいまいになり、もはやタイムライン上の特定の瞬間を表現しません。しかし、あなたが主張しているのであれば、事前定義されています。
String output = odt.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME) ;
Javaバージョン8を使用している場合は、 'java.time'パッケージを参照してください。以前のバージョンを使用している場合は、joda-timeライブラリを調べてください。 – Henrik
@Henrik 'java.util.time'ではなく' java.time'です。 –
ルーキーな間違い....恥ずかしい。ありがとう。 – Henrik