Использование буквенных символов в строке шаблона SimpleDateFormat
-
19-09-2019 - |
Вопрос
Можно ли включить буквенный символ в строку шаблона SimpleDateFormat?
Я пытаюсь создать строку формата, в которую буква "T" включена раньше времени, например:
2003-11-15T09:30:47-05:00.
В настоящее время я использую yyyy-MM-ddhh:mm:ssZ
как строка шаблона.
Если я изменю его на yyyy-MM-ddThh:mm:ssZ
это вызовет исключение, поскольку 'A' для 'Z' и 'a' для 'z' зарезервированы.
Есть ли какое-либо решение, которое не предполагает использования двух форматов данных?
Решение
Окружающий T
с одинарными кавычками должно сработать:
yyyy-MM-dd'T'hh:mm:ssZ
Цитирую из документация (курсив мой):
Форматы даты и времени задаются строками шаблонов даты и времени.В строках шаблонов даты и времени буквы без кавычек из
'A'
Для'Z'
и от'a'
Для'z'
интерпретируются как буквы шаблона, представляющие компоненты строки даты или времени. Текст может быть заключен в одинарные кавычки ('
), чтобы избежать интерпретации."''"
представляет собой одинарную кавычку.Все остальные символы не интерпретируются;они просто копируются в выходную строку во время форматирования или сопоставляются с входной строкой во время синтаксического анализа.
Ваш конкретный вариант использования даже включен в качестве примера:
Date and Time Pattern Result
-------------------------------------------------------------
"yyyy-MM-dd'T'HH:mm:ss.SSSZ" 2001-07-04T12:08:56.235-0700