将GMT日期转换为IST

时间:2016-01-25 19:59:51

标签: android android-date

我正在尝试使用以下代码将GMT时间转换为IST:

 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
 Date date1 = sdf.parse("2015-01-25");
 sdf.setTimeZone(TimeZone.getTimeZone("IST"));
 Log.d("date",sdf.format(date1));

但是,2015-01-24正在控制台中注销。我错了吗?

2 个答案:

答案 0 :(得分:1)

由于您使用的是IST,因此您必须手动指定GMT。像这样,

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));  // set this if your timezone is different

Date date1 = sdf.parse("2015-01-25"); // now time is Sun Jan 25 00:00:00 GMT 2015
sdf.setTimeZone(TimeZone.getTimeZone("IST"));
Log.d("date",sdf.format(date1)); // now time is Sun Jan 25 05:30:00 IST 2015

由于IST = GMT + 05.30,您将获得相同的日期。

答案 1 :(得分:0)

代码片段将2015-01-25 00:00:00当地时间(无论是什么 - 似乎是IST以东)转换为IST并打印日期部分。

所以2015-01-26永远不能输出,因为IST必须至少比当地时间早24小时。