在我的代码中,我获取当前时间,然后根据"UTC"时区对其进行格式化,然后使用相同的时区对其解析,从而将其转换为日期。问题是,我得到的日期是"2016年7月20日星期三13:04:51 GMT+05:00"其格式化和解析如下面的代码
Calendar calendar = Calendar.getInstance();
Date currentDate = calendar.getTime();
//gives time as "Wed Jul 20 13:04:51 GMT+05:00 2016"
dateFormat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z");
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
String dateText = dateFormat.format(currentDate);
//This formats dates as following "Wed, 20 Jul 2016 08:04:51 +0000"
现在,一切正常,时区GMT+05:00的时间转换为标准UTC,GMT+000:00在格式化日期中显示为+0000
Date setteledDate = dateFormat.parse(dateText);
现在,如上所述分析日期会得到以下日期。"2016年7月20日星期三13:04:51 GMT+05:00"。问题是这个日期又是GMT+5我获取当前日期的全部目的是格式化它,而不是解析它,因为目的是根据"UTC"(GMT+00:0)获取当前日期。
请帮忙。
以SimpleDateFormat格式将Z替换为Z。
Calendar calendar = Calendar.getInstance();
Date currentDate = calendar.getTime();
//gives time as "Wed Jul 20 13:04:51 GMT+05:00 2016"
SimpleDateFormat dateFormat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z");
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
String dateText = dateFormat.format(currentDate);
Log.e("date",dateText);
//output Wed, 20 Jul 2016 09:01:20 UTC
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
dateText = dateFormat.format(currentDate);
Log.e("date",dateText);
//output Wed, 20 Jul 2016 09:02:04 GMT+00:00
//更新
SimpleDateFormat dateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
try {
Date date = dateFormat.parse("Wed Jul 20 13:04:51 GMT+05:00 2016");
Log.e("date",date.toString());
} catch (ParseException e) {
e.printStackTrace();
}