Home >Java >javaTutorial >Why Does Parsing a Date String with 'T' in Java Throw an 'Illegal Pattern Character 'T'' Exception?

Why Does Parsing a Date String with 'T' in Java Throw an 'Illegal Pattern Character 'T'' Exception?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-08 14:54:12544browse

Why Does Parsing a Date String with

Illegal Pattern Character 'T' When Parsing Date String to java.util.Date

When attempting to parse a date string to a standard date using the Java Date API, you may encounter an exception with the following message: "Illegal pattern character 'T'". This error arises because the pattern specified for parsing includes the character "T", which is not recognized as a valid pattern character.

Cause:

The "T" character in the date string represents the time separator between the date and time components. However, the default SimpleDateFormat pattern does not include this character. As a result, the parser interprets it as an illegal pattern character.

Solution:

To resolve this issue, there are two main approaches:

1. Custom Pattern:

You can specify a custom pattern that includes the "T" character as the time separator. For instance:

String pattern = "yyyy-MM-dd'T'HH:mm:ssZ";

2. Single Quote Escaping:

Alternatively, you can escape the "T" character using single quotes. This way, it will be treated as a literal character rather than a pattern character.

String pattern = "yyyy-MM-dd'T'hh:mm:ssZ";

Additional Notes:

  • In Java 8 and higher, you can use the DateTimeFormatter class to parse date strings more flexibly and concisely. For example:
String input = "2010-10-02T12:23:23Z";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'Z'");
LocalDateTime dateTime = LocalDateTime.parse(input, formatter);
  • Remember to set the TimeZone to UTC or the relevant time zone when parsing the date string.

Applying one of these methods should allow you to successfully parse date strings with the "T" character as the time separator.

The above is the detailed content of Why Does Parsing a Date String with 'T' in Java Throw an 'Illegal Pattern Character 'T'' Exception?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn