我有一个来自服务器的 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);
结果是
2015 年 5 月 14 日星期四 05:27:35 GMT+05:00
现在我的问题是,当我已经设置了 GMT 时区时,为什么它使用我的设备默认时区,我如何使用 GMT 时区解析它?
最佳答案
您为 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
关于java - Android 中的 SimpleFormat 未检测到 GMT 时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30354159/