サーバーからこの文字列を日付として取得しています
2016-06-11T11:14:57.000Z
UTCなので、現地時間に変換したいと思います。
SimpleDateFormat mFormat = new SimpleDateFormat("yyyy-MM-dd"T"HH:mm:ss.SSS"Z"");
SimpleDateFormat endFormat = new SimpleDateFormat("hh:mm a");
mFormat.setTimeZone(TimeZone.getTimeZone("GMT+5:00"));
Date date = mFormat.parse(mBooking.startTime);
ただし、変換後の日付 2:00AM
今はわからない 11am
に変換されています 2:00AM
私は何を間違っていますか?
回答:
回答№1の場合は3タイムゾーンをそれぞれに適切に設定しないため SimpleDateFormat
確かに mFormat
はに設定する必要があります UTC
そして endFormat
に GMT + 5
、ここであなたがすることになっています:
SimpleDateFormat mFormat = new SimpleDateFormat("yyyy-MM-dd"T"HH:mm:ss.SSS"Z"");
// Set UTC to my original date format as it is my input TimeZone
mFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
Date date = mFormat.parse("2016-06-11T11:14:57.000Z");
SimpleDateFormat endFormat = new SimpleDateFormat("hh:mm a");
// Set GMT + 5 to my target date format as it is my output TimeZone
endFormat.setTimeZone(TimeZone.getTimeZone("GMT+5:00"));
System.out.println(endFormat.format(date));
出力:
04:14 PM