Using Alphabetic Characters in SimpleDateFormat Pattern String

JavaDatetimeFormattingSimpledateformat

Java Problem Overview


Is it possible to include an alphabetic character in a SimpleDateFormat Pattern String?

I am trying to create a format string where the letter 'T' is included before the time for example:

2003-11-15T09:30:47-05:00.

I am currently using yyyy-MM-ddhh:mm:ssZ as the pattern string.

If I change it to yyyy-MM-ddThh:mm:ssZ it will throw an exception as 'A' to 'Z' and 'a' to 'z' are reserved.

Is there any solution that does not involve using two DateFormats?

Java Solutions


Solution 1 - Java

Surrounding the T with single quotes should work:

yyyy-MM-dd'T'hh:mm:ssZ

Quoting from the documentation (emphasis mine):

> Date and time formats are specified by date and time pattern strings. Within date and time pattern strings, unquoted letters from 'A' to 'Z' and from 'a' to 'z' are interpreted as pattern letters representing the components of a date or time string. Text can be quoted using single quotes (') to avoid interpretation. "''" represents a single quote. All other characters are not interpreted; they're simply copied into the output string during formatting or matched against the input string during parsing.

Your specific use case is even included as an example:

Date and Time Pattern            Result
-------------------------------------------------------------
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"     2001-07-04T12:08:56.235-0700  

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionGordonView Question on Stackoverflow
Solution 1 - JavaJoeyView Answer on Stackoverflow