如何在android中将ISO时间转换为IST和GMT?

时间:2016-01-20 12:01:10

标签: android

这里是我的代码,将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的差异

请帮我解决这个问题。

1 个答案:

答案 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

您的代码绝对正确