天天看點

Java時間轉換的誤區:精确到毫秒

有個時間轉換的功能,本以為很是簡單,但是轉換後日期一直是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的時間轉換在毫秒,不是秒。