FIXのtimestampの例
SendingTime(UTC) : 52=20140925-18:09:34.422
以下はアイディア
(1) LocalDateTimeに変換し、9時間プラスする。
(2) LocalDateTime(UTC)に変換 ⇒ Instantに変換 ⇒ ZonedDateTIme(JST)に変換 ⇒ LocalDateTime(JST)に変換
(3) もっと良いやり方が。。。
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd-HH:mm:ss.SSS");
String sampleTime = "20140925-18:09:34.444";
// UTC
LocalDateTime localDateTimeUtc = LocalDateTime.parse(sampleTime, formatter);
// (1) LocalDateTimeに変換し、9時間プラスする。
LocalDateTime localDateTimeJst = localDateTimeUtc.plusHours(9);
// (2) LocalDateTime(UTC)に変換 ⇒ Instantに変換 ⇒ ZonedDateTIme(JST)に変換 ⇒ LocalDateTime(JST)に変換
Instant instant = localDateTimeUtc.toInstant(ZoneOffset.UTC);
ZonedDateTime zonedDateTimeJst = ZonedDateTime.ofInstant(instant, ZoneId.of("Asia/Tokyo"));
LocalDateTime localDateTimeJst2 = zonedDateTimeJst.toLocalDateTime();
DateTimeAPIで参考になりそうなサイト
・Programming Studio
Date and Time API 徹底攻略(5) - Date/Time その2
・JavaのAPI
0 件のコメント:
コメントを投稿