Home > Java > javaTutorial > Why Does Parsing a Date String in Java Throw 'Illegal pattern character 'T''?

Why Does Parsing a Date String in Java Throw 'Illegal pattern character 'T''?

Patricia Arquette
Release: 2024-12-18 08:41:11
Original
147 people have browsed it

Why Does Parsing a Date String in Java Throw

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

Parsing a date string to a java.util.Date object requires a pattern that adheres to specific rules. One common pattern is "yyyy-MM-ddThh:mm:ssZ," which represents dates in ISO 8601 format.

Problem:
When using the specified pattern, an exception is thrown with the message "java.lang.IllegalArgumentException: Illegal pattern character 'T'."

Reason:
The 'T' in the pattern represents a separator between the date and time components. However, in Java's SimpleDateFormat, the 'T' character needs to be escaped with single quotes on either side to be recognized correctly.

Solution 1: Escape 'T' in Pattern
To resolve the issue using the original pattern, escape the 'T' character as follows:

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

Solution 2: Use ISO_8601_24H_FULL_FORMAT
Alternatively, you can use the pre-defined ISO_8601_24H_FULL_FORMAT constant provided by the Q2597083 class:

String pattern = Q2597083.ISO_8601_24H_FULL_FORMAT;
Copy after login

For Java 8 and Higher:
For Java 8 and above, it is recommended to use the DateTimeFormatter class instead of SimpleDateFormat and Instant instead of Date. Here's an example:

import java.time.Instant;
import java.time.format.DateTimeFormatter;

String dateString = "2010-10-02T12:23:23Z";
DateTimeFormatter formatter = DateTimeFormatter.ISO_DATE_TIME;
Instant d = Instant.parse(dateString);
System.out.println(d.getYear());
Copy after login

By using these solutions, you can successfully parse date strings in ISO 8601 format without encountering the "Illegal pattern character 'T'" exception.

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

source:php.cn
Statement of this Website
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
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template