Использование буквенных символов в строке шаблона SimpleDateFormat

StackOverflow https://stackoverflow.com/questions/2416809

Вопрос

Можно ли включить буквенный символ в строку шаблона 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  
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top