我正在尝试使用以下代码将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正在控制台中注销。我错了吗?
答案 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小时。