/ /サーバーからのUTC日付の現地時間への変換-java、android、android-studio

サーバーからUTCの日付を現地時間に変換する - java、android、android-studio

サーバーからこの文字列を日付として取得しています

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 そして endFormatGMT + 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