關於UTC時間的轉本地時間
阿新 • • 發佈:2019-02-07
最近發現專案中後臺採用的是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用替換字串的方式要正規很多,雖然那種方法能解決問題,但是我覺得還是要按照標準來