this “date”: “2014-08-20 00:00:00 -0500”? What is the time format… here is a solution to the problem.
this “date”: “2014-08-20 00:00:00 -0500”? What is the time format
I tried converting this date by:
SimpleDateFormat fromFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSSZ");
But I got :
java.text.ParseException: Unparseable date: "2014-09-20 00:00:00 -0500" (at offset 20)
Solution
“-0500” is the offset from UTC in RFC822 format. You only need Z
, no SSS
.
Android SimpleDateFormat
docs In the table like this:
- Symbol: Z
- What it means: Time zone (RFC 822).
- Kind: (time zone).
ZZZZZ
:-08:00
Example: Z/ZZ/ZZZ:-0800 ZZZZ:GMT-08:00
Of course, I also specify the locale myself: this is a machine-readable format, not a human-facing format, so I usually specify Locale.US
:
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z",
Locale.US);
String text = "2014-08-20 00:00:00 -0500";
System.out.println(format.parse(text));