目标:
时间格式为GMT的需要转成yyyy-mm-dd
例如:Wed May 17 00:00:00 GMT+08:00 2017 需要转成 2017-05-17 00:00:00
过程:
上网查了一些方法中有提到,如下修改可以实现。
SimpleDateFormat sf = new SimpleDateFormat("EEE MMM dd yyyy hh:mm:ss z", Locale.ENGLISH);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date GMTDate = null;
String dateTime = "";
try {
if (!Validator.isEmpty(GMTTime)) {//这步其实也报错了 找不到isEmpty方法,应该是我缺少引入吧
GMTDate = sf.parse(GMTTime);//我到这一步就报错了
dateTime = sdf.format(GMTDate);
}
} catch (ParseException e) {
e.printStackTrace();
}
报错信息如下:
根本原因是设置的格式没有与所提供的GMT格式保持一致,修改成一致即可。
只需将原来的
SimpleDateFormat sf = new SimpleDateFormat(“EEE MMM dd yyyy hh:mm:ss z”, Locale.ENGLISH);
修改为:
SimpleDateFormat sf = new SimpleDateFormat(“EEE MMM dd HH:mm:ss Z yyyy”, Locale.ENGLISH);
成功转换后的值
然后在进行yyyy-mm-dd的转换。即可
sdf.format(GMTDate);
结果:
知乎上找了张图可以参考。
关于SimpleDateFormat转时间更细节的内容,可以参考