有個時間轉換的功能,本以為很是簡單,但是轉換後日期一直是1970-01-18,一看這時間就是有問題,方法寫錯了?折騰了一個小時,先貼代碼。
public String getNowDate(long time) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String dateString = formatter.format(time);
return dateString;
}
TextView textView= (TextView) findViewById(R.id.tv);
textView.setText(getNowDate());
數字:1510787998是背景接口傳回的時間戳
結果:1970-01-18
準确:2017-11-16
找原因,我首先看下自己的方法有沒有問題,試了七八次沒有問題,絕對沒有問題。背景資料問題?然後用Java擷取目前時間發現背景給的資料少了三位,這才明白背景給的資料是到秒,但是Java轉換的時候要求資料是毫秒,是以應該将資料1510787998變成1510787998000。
同時一些時間轉換工具的網站也是要秒就可以不用精确到毫秒。例如
http://tool.lu/timestamp/
總結:Java的時間轉換在毫秒,不是秒。