Date Parsing with SimpleDateFormat and 'Z' Time Zone Designator
SimpleDateFormat is a versatile tool for parsing dates in Java. However, parsing dates with the 'Z' literal, which signifies UTC time, can pose a challenge.
Parsing Failure
When parsing a date string like "2010-04-05T17:16:00Z" using the pattern "yyyy-MM-dd'T'HH:mm:ss", SimpleDateFormat誤解s the 'Z' literal as a time zone identifier (e.g., EDT) and applies the local time zone offset, resulting in an incorrect date.
Alternative Patterns
To explicitly specify the UTC time zone, one can use the patterns "yyyy-MM-dd'T'HH:mm:ssz" or "yyyy-MM-dd'T'HH:mm:ssZ." However, SimpleDateFormat does not natively support these patterns.
Solution for Java 7
In Java 7 and later, the pattern "yyyy-MM-dd'T'HH:mm:ssX" can be used to read and apply the time zone suffix. This pattern correctly parses the date as UTC time.
Conclusion
Parsing dates with SimpleDateFormat can be challenging when dealing with time zone designators. However, by understanding the limitations and using the appropriate patterns, developers can accurately parse dates in various formats, including those with the 'Z' literal representing UTC time.
The above is the detailed content of How to Parse Dates with \'Z\' Time Zone Designator in Java using SimpleDateFormat?. For more information, please follow other related articles on the PHP Chinese website!