#java #datetime
Вопрос:
Я хочу принять формат даты в соответствии с ISO (не могу вспомнить, какой именно)…
2009-09-17T13:03:00
Как мне это сделать? В настоящее время я использую SimpleDateФормат, но когда я запускаю модульный тест для него, он завершается неудачей.
DateFormat df = SimpleDateFormat("yyyy-MM-ddTHH:mm:ss");
Модульный тест передает ему эту строку:
String test1 = "2009-09-17T13:07:01";
Комментарии:
1. Можем ли мы просмотреть код вашего модульного теста, а также метод, который тестируется?
2. На самом деле чтение сообщений об ошибках, по-видимому, утраченное искусство…
3. Рассматриваемый стандарт ISO-ISO 8601
4. Понижающий голос немного резковат. «Незаконный символ Паттена Т» не объясняет, как устранить проблему.
5. Тем не менее, он точно указывает вам, в чем заключается проблема, и просмотр API do (который действительно говорит вам, что делать) является очевидным следующим шагом. И если вы не знаете, как интерпретировать сообщение об ошибке, по крайней мере, включите его в свой вопрос . Или предоставьте фактически отказывающий код, а не искалеченные фрагменты, которые даже не будут компилироваться.
Ответ №1:
Параметр SimpleDateFormat должен быть «гггг-ММ-дд’т’Ч:мм:сс».
С уважением.
Ответ №2:
Вам нужно заключить букву Т в одинарные кавычки
Ответ №3:
Ваш формат неверен. Это должно быть что-то вроде этого,
SimpleDateFormat isoFormat =
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
Ответ №4:
Простое решение-удалить букву «Т» 😉
...
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-ddHH:mm:ss");
Date date = df.parse("2009-09-17T13:07:01".replace("T",""))
С уважением, Ян