最近发现项目中后台采用的是UTC(世界标准时间)时间格式。而且还不是标准的UTC,这让我很尴尬,而且以前项目中处理时间的方式也是极其无脑。
首先来说下尴尬的是事情是什么,后台采用的Python语言开发,因为人员流动,代码不统一,时间返回不标准。例如一个时间可能是
String time="2017-08-05T12:22:59Z";
这个是标准的UTC时间格式,我不知道为什么还会返回第二种格式如:
String time="2017-08-05T12:22:59";
简直是无语了,那怎么办,只能自己解决了,将错就错
public static void main(String[] args) {
parseTime("2017-08-05T12:22:59Z");
}
public static void parseTime(String utcTimeStr){
try {
SimpleDateFormat sdf;
if (utcTimeStr.indexOf("Z")==0) {
sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
}else{
sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
}
long parseTime = sdf.parse(utcTimeStr).getTime();
String format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(parseTime));
System.out.println(format);
} catch (Exception e) {
e.printStackTrace();
}
}
最后打印的时间是
2017-08-05 12:22:59
这种方式完美的解决了返回时间格式不一致的问题,比起以前的Android用替换字符串的方式要正规很多,虽然那种方法能解决问题,但是我觉得还是要按照标准来