Добавление смещения к строке даты, у которой ее нет, в функции карты сценариев Boomi - Java / "Groovy" - PullRequest
1 голос
/ 27 сентября 2019

Boomi / Java / Groovy noob здесь ... Я начинаю с даты (отправленной нам от стороннего поставщика), которая имеет следующий формат: 2018-04-18 12: 15: 00.000000 (нет 'T'), что нам сказали, находится в Америке / Чикаго TZ.В конечном итоге мне нужно получить выходные данные в следующем формате даты (с добавлением буквы «Т» и смещением):

2018-04-18T12: 15: 00.000000-06: 00

-или-

2018-04-18T12: 15: 00.000000-05: 00 (в зависимости от того, какое местное время для этого конкретного времени года в Чикаго)

I 'Мы пытались найти множество комбинаций SimpleDateFormat, ZoneID.of, ZonedDateTime.ofInstant, LocalDateTime.ofInstant, LocalDateTime.parse и т.д.

Любая помощь будет принята с благодарностью !!

1 Ответ

0 голосов
/ 27 сентября 2019

Вы можете прочитать его как LocalDateTime, а затем переместить его в одно и то же время в часовом поясе Чикаго:

import java.time.LocalDateTime
import java.time.ZoneId
import java.time.ZonedDateTime
import java.time.format.DateTimeFormatter

String input = "2018-04-18 12:15:00.000000"
DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.n")
ZoneId chicago = ZoneId.of("America/Chicago")

LocalDateTime localTime = LocalDateTime.parse(input, format)
ZonedDateTime chicagoTime = localTime.atZone(chicago)

println chicagoTime

печатает:

2018-04-18T12:15-05:00[America/Chicago]

Если вам это нужно простоOffsetDateTime, тогда вы можете использовать метод toOffsetDateTime()

println chicagoZonedTime.toOffsetDateTime()

, который печатает:

2018-04-18T12:15-05:00
...