Преобразование часового пояса из CEST TIME в UT C в Android - PullRequest
0 голосов
/ 26 мая 2020

Я создаю приложение в студии Android с использованием уровня API 21.

Я должен преобразовать дату из CEST TIME | GMT | CET в формате UT C time.

Это время в формате.

SimpleDateFormat utcFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
String dateToConvert = "2020-05-26T17:50:50.456";

Это время в формате часового пояса CEST, я хочу преобразовать его в UT C time.

1 Ответ

1 голос
/ 26 мая 2020

Чтобы «преобразовать» дату в указанный c часовой пояс, укажите зону при форматировании значения Date.

В следующем примере часовой пояс явно указан для обоих входных формат и выходной формат, поэтому пример не зависит от часового пояса по умолчанию устройства, на котором выполняется код. Вы, конечно, можете оставить входной часовой пояс неопределенным, если хотите использовать часовой пояс по умолчанию.

TimeZone centralEurope = TimeZone.getTimeZone("Europe/Paris");
TimeZone UTC = TimeZone.getTimeZone("UTC");

SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
inputFormat.setTimeZone(centralEurope);

SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
outputFormat.setTimeZone(UTC);

String dateToConvert = "2020-05-26T17:50:50.456";
Date date = inputFormat.parse(dateToConvert);
System.out.println(outputFormat.format(date));

Выход

2020-05-26T15:50:50.456
...