我有来自服务器的GMT日期字符串
2015-05-14 12:27:35
我正在使用以下代码将其转换为文本差异。
Calendar systemCal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
try {
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
formatter.setTimeZone(TimeZone.getTimeZone("GMT"));
Date date = (Date) formatter.parse(dateString);
/***********************************/
CharSequence myDateString = DateUtils.getRelativeTimeSpanString(date.getTime(), systemCal.getTimeInMillis(), DateUtils.MINUTE_IN_MILLIS);
return myDateString.toString().replace("minutes", "min");
现在我遇到了问题
Date date = (Date) formatter.parse(dateString);
结果是
Thu May 14 05:27:35 GMT+05:00 2015
现在我的问题是,为什么我已经设置了GMT时区时使用我的设备默认时区?如何使用GMT时区解析它?
答案 0 :(得分:1)
您为systemCal设置GMT。使用创建日期时使用相同的时区。它使用的是默认的timezome,它会产生不同。
Calendar systemCal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
formatter.setTimeZone(TimeZone.getTimeZone("GMT"));
Date date = (Date) formatter.parse("2015-02-03 10:11:12");
System.out.println(date); // => Tue Feb 03 05:11:12 EST 2015
System.out.println(formatter.format(date)); // => 2015-02-03 10:11:12