Преобразование строки date в datetimepst(строка) и datetimelocal(строка) с использованием смещения?
У меня есть три параметра, UTCTime и два смещения, все три в виде строк, мне нужно преобразовать их, как показано ниже
Input: String UTCTime = "2020-09-29 16:06:00"; String PSTOffset = "-07:00"; String LocalOffset = "-04:00"; Output Expected: LocalTime = "2020-09-29 12:06:00" PSTTime = "2020-09-29 09:06:00"
Что я уже пробовал:
Я пытался сделать что-то вроде этого
OffsetDateTime OffsetLocalTime = OffsetDateTime.parse(String.format("%sT%sZ",UTCTime.split(" ")[0],UTCTime.split(" ")[1])); OffsetLocalTime = OffsetLocalTime.withOffsetSameInstant(ZoneOffset.of(LocalOffset)); OffsetDateTime OffsetPSTTime = OffsetDateTime.parse(String.format("%sT%sZ",UTCTime.split(" ")[0],UTCTime.split(" ")[1])); OffsetPSTTime = OffsetPSTTime.withOffsetSameInstant(ZoneOffset.of(PSTOffset)); String LocalTime = String.format("%s %s",OffsetLocalTime.toString().substring(0,OffsetLocalTime.toString().lastIndexOf('-')).split("T")[0],OffsetLocalTime.toString().substring(0,OffsetLocalTime.toString().lastIndexOf('-')).split("T")[1]); String PSTTime = String.format("%s %s",OffsetPSTTime.toString().substring(0,OffsetPSTTime.toString().lastIndexOf('-')).split("T")[0],OffsetPSTTime.toString().substring(0,OffsetPSTTime.toString().lastIndexOf('-')).split("T")[1]); System.out.println("OffsetLocalTime: "+OffsetLocalTime); System.out.println("OffsetPSTTime: "+ OffsetPSTTime); System.out.println("LocalTime: "+ LocalTime); System.out.println("PSTTime: "+ PSTTime); Actual Output: OffsetLocalTime: 2020-09-29T12:06-04:00 OffsetPSTTime: 2020-09-29T09:06-07:00 LocalTime: 2020-09-29 12:06 PSTTime: 2020-09-29 09:06
Я упускаю секунды, и это кажется неэффективным способом, потому что мне не нужно " т " или смещение в моем выходе, и я избавляюсь от них. Я не уверен, что этот вопрос уже задан. Любая помощь будет оценена по достоинству.