Преобразование формата даты и времени Java - PullRequest
3 голосов
/ 25 марта 2012

дата здесь моя проблема:

String datetime = "2012-03-24 23:20:51";

Я знаю, что эта строка находится в часовом поясе UTC.Мне нужно преобразовать эту строку в формат «ггг-мм-дд'т'чч: мм: ссЗ».

Для этого я использую следующий код:

    SimpleDateFormat inFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    inFormatter.setTimeZone(TimeZone.getTimeZone("UTC"));
    Date inDate = inFormatter.parse(datetime);
    SimpleDateFormat outFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
    outFormatter.setTimeZone(TimeZone.getTimeZone("UTC"));
    String output = outFormatter.format(inDate);

проблема в том, что этот код работает на сервере с часовым поясом UTC + 1, и результат, который он мне дал, таков:

output = "2012-03-24T21:20:51+0000"

Он удаляет 2 часа из начального времени и ставит метку времени UTC (0000).

Не могли бы вы помочь мне решить эту проблему?Спасибо.

1 Ответ

2 голосов
/ 25 марта 2012

Если выходной формат - UTC + 1, вы должны использовать его в outformatter вместо UTC.

outFormatter.setTimeZone(TimeZone.getTimeZone("UTC+01:00"));

Кроме того, если вы не хотите +0000 в конце, то удалите Z

SimpleDateFormat outFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
...