Извлечь часовой пояс из строкиJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Извлечь часовой пояс из строки

Сообщение Anonymous »

Я знаю, что по этому поводу есть несколько вопросов. Но у меня проблема с конкретным шаблоном даты. Вот пример:

Код: Выделить всё

20130401100000[-03:EST]
У меня возникли проблемы с -03, потому что согласно документации SimpleDateFormat он должен состоять из 4 цифр. Ближайший образец, который я нашел, был такой:

Код: Выделить всё

yyyyMMddHHmmss'['Z':'z']'
Но из-за двух цифр это просто не сработает. Вот пример кода, который я использую для тестов:

Код: Выделить всё

public static void main(String[] args) throws ParseException {
String input = "20130401100000[-03:EST]";

DateFormat df = new SimpleDateFormat("yyyyMMddHHmmss'['Z':'z']'");
df.setTimeZone(TimeZone.getTimeZone("GMT"));

System.out.println(df.format(new Date()));
System.out.println(df.parse(input));
}
Когда я печатаю новую дату(), я получаю следующее:

Код: Выделить всё

20130528155734[+0000:GMT]
Но когда я пытаюсь проанализировать входные данные, я получаю следующее исключение:

Код: Выделить всё

Exception in thread "main" java.text.ParseException: Unparseable date: "20130401100000[-03:EST]"
at java.text.DateFormat.parse(DateFormat.java:337)
at Teste.main(Teste.java:17)
Кто-нибудь знает, как я могу преобразовать входные данные в дату с правильным часовым поясом?

Подробнее здесь: https://stackoverflow.com/questions/167 ... rom-string
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»