前提:
因爲Ios不能從後臺獲取long型時間戳,所以用String包裹。
使用:
long start = Long.valueOf(bean.getStartTime()) * 1000;
long end = Long.valueOf(bean.getEndTime()) * 1000;
time.setText(String.format("%s - %s", sdf.format(new Date(start)), sdf.format(new Date(end))));
爲了適配ios,所以後臺傳到前臺的時間戳是10位(秒)。
因爲我們用的是毫秒,所以*1000。
錯誤使用導致時間錯誤:
遇見問題的原因是因爲使用了Integer從String內接出時間戳,如下:
LogUtils.i(TAG, "Long.valueOf() =" + Long.valueOf(record.getStartTime()));
LogUtils.i(TAG, "Integer.valueOf() =" + Integer.valueOf(record.getStartTime()));
Log輸出:
Long.valueOf() =1578883508
Integer.valueOf() =1578883508
雖然現實時間一致,但是設置給date後獲取的時間卻不相同。
解析源碼:
發生在date內部,爲啥以後再說吧,現在就找到getTime(),看不到源碼。希望大神留言,謝謝。