I am trying to parse a date 2014-12-03T10:05:59.5646+08:00
using these two formats:
yyyy-MM-dd'T'HH:mm:ss
yyyy-MM-dd'T'HH:mm:ssXXX
When I parse using yyyy-MM-dd'T'HH:mm:ss
it works fine, but when I parse yyyy-MM-dd'T'HH:mm:ssXXX
a ParseException
is thrown.
Which is the correct format to parse the date and also what exactly is the difference between these two formats?
Note : I cannot use Joda :(
The values should be 'mm' for minute and 'MM' for month.
The T is just a literal to separate the date from the time, and the Z means “zero hour offset” also known as “Zulu time” (UTC). If your strings always have a “Z” you can use: SimpleDateFormat format = new SimpleDateFormat( “yyyy-MM-dd'T'HH:mm:ss).
use this format yyyy-MM-dd'T'HH:mm:ss.SSSSX
From SimpleDateFormat
API
//Letter Date or Time Component Presentation Example
S Millisecond Number 978
X Time zone ISO 8601 time zone -08; -0800; -08:00
USE:
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSX");
String date = "2014-12-03T10:05:59.5646+08:00";
System.out.println(format.parse(date));
OUTPUT:
Wed Dec 03 03:06:04 CET 2014
Those are valid formats:
yyyy-MM-dd'T'HH:mm:ss.SSSZ >>> e.g.: 2001-07-04T12:08:56.235-0700
yyyy-MM-dd'T'HH:mm:ss.SSSXXX >>> e.g.: 2001-07-04T12:08:56.235-07:00
Edit:
BTW, "X" refer to the (ISO 8601 time zone)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With