Використання алфавітних символів у рядку шаблону SimpleDateFormat


80

Чи можна включити алфавітний символ у рядок шаблону 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?

Відповіді:


145

Оточення 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  


@Joachim: Так, збирався це додати :)
Joey
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.