Использование буквенных символов в шаблонной строке SimpleDateFormat - PullRequest
72 голосов
/ 10 марта 2010

Можно ли включить буквенный символ в строку шаблона SimpleDateFormat?

Я пытаюсь создать строку формата, в которой буква 'T' включена до времени, например:

2003-11-15 T 09: 30: 47-05: 00

В настоящее время я использую yyyy-MM-ddhh:mm:ssZ в качестве строки шаблона.

Если я изменю это значение на yyyy-MM-ddThh:mm:ssZ, оно выдаст исключение, поскольку 'A' к 'Z' и 'a' к 'z' зарезервированы.

Есть ли какое-либо решение, которое не предполагает использование двух DateFormats?

1 Ответ

129 голосов
/ 10 марта 2010

Окружение 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  
...