这里是我的代码,将ISO转换为IST,ISO转换为GMT。
Log.e("ISO TIME",""+time);//The time which i got from JSON file.
//IST TIME ZONE
Date date=new Date();
DateFormat format=DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.FULL);
SimpleDateFormat simpleDateFormat=new SimpleDateFormat();
simpleDateFormat.applyPattern("yyyy-MM-dd'T'HH:mm'+00':ss");
date = simpleDateFormat.parse(time.toString());
format.setTimeZone(simpleDateFormat.getTimeZone());
Log.e("IST TIME", "" + format.format(date));
//GMT TIME ZONE
Date date1=new Date();
SimpleDateFormat sdf=(SimpleDateFormat)DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL);
sdf.applyPattern("yyyy-MM-dd'T'HH:mm'+00':ss");
date1=sdf.parse(time);
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
Log.e("GMT TIME", "" + sdf.format(date1));
这是我的输出
E/ISO TIME: 2016-01-18T08:40+00:00
E/GMT TIME: 2016-01-18T03:10+00:00
E/IST TIME: Jan 18, 2016 8:40:00 AM India Standard Time
问题是IST和GMT之间的实际差异是5:30 但是在我的输出中,我确实得到了5:30的差异
请帮我解决这个问题。
答案 0 :(得分:1)
@Logic绝对是对的。 但我对你有一些建议。
您需要在GMT时间内添加5:30小时,然后才能获得IST。 永远不要在你的IST时间5:30加入你。
看看这个例子 你的IST时间是8:40,GMT时间是3:10
每次操作增加1小时
在圆括号中,为每次迭代添加一小时:
3:10→4:10(1) - →5:10(2) - →6:10(3) - 大于7:10(4) - &δ:10(5 )
完成一小时的剩余IST时间是00:20
将00:20添加到8:10它将成为8:30。
将GMT时间用于补充 3:20
您的代码绝对正确