2016-08-22 2 views
0

Я пытаюсь создать объект DateTimeFormatter с шаблоном, соответствующим этому выражению времени: 2016-07-22T00: 00: 00.000-05: 00. Я пытаюсь создать объект DateTime, используя класс DateTimeFormatter с указанной выше входной строкой.Как создать правильный шаблон DateTimeFormatter

Я пробовал много разных версий ниже выражения, но я в настоящее время застревать на часовой пояс кусок «-05: 00», где я получаю ошибку на моем тестовом JUnit случае:

java.lang.IllegalArgumentException: Invalid format: "2016-07-22T00:00:00.000-05:00" is malformed at "-05:00" 

текущий шаблон формат, который я использую:

yyyy-MM-dd'T'HH:mm:ss.SSSZ 

Я также попытался:

yyyy-MM-dd'T'HH:mm:ss.SSSTZD 
yyyy-MM-dd'T'HH:mm:ss.SSSZZZ 
yyyy-MM-dd'T'HH:mm:ss.SSSz 
yyyy-MM-dd'T'HH:mm:ss.SSSzzz 
yyyy-MM-dd'T'HH:mm:ss.SSS'TZD' 

Я работаю на Java 7, поэтому я не уверен, что это вызывает проблему.

ответ

-1

Javadoc АНИ описывают закономерности: https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

Я тестировал этот код:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX"); 
Date date = new Date(); 
System.out.println(sdf.format(date)); 

Выход был:

2016-08-22T18:34:26.604-03:00 
+0

Это действительно работает, но я пытаюсь создать объект DateTime в конце, а не заканчивать строкой. – user007

1

Для того, чтобы достичь того, чего вы хотите, вы может использовать статический метод «ofPattern» в классе DateTimeFormatter. Этот метод возвращает объект DateTimeFormatter.

И, как показано на ОТП, вы можете использовать следующий формат даты и времени строку:

"YYYY-MM-dd'T'HH: мм: ss.SSSXXX"

DateTimeFormatter test = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX"); 

I проверял код и компилирует его.

+0

Это компилируется, но не работает, потому что XXX не является допустимым компонентом шаблона. – user007

+0

Я считаю, что вы сбиты с толку, код, который опубликовал tnas, поэтому доказывает, что yyyy-MM-dd'T'HH: mm: ss.SSSXXX является допустимой строкой даты и времени. –

+0

Компиляция и запуск - это две разные вещи .... Этот код компилируется, потому что вы просто вводите String в метод .ofPattern(), который просто требует ввода строки. Вы можете ввести «Hello World», и код все равно будет компилироваться. Это не означает, что когда вы используете этот код, он будет работать правильно. – user007

Смежные вопросы