2013-12-12 61 views
0

我想從ArrayList中獲取服務器的時間戳,從ListView的Adapter中設置日期。不正確的服務器時間戳轉換爲字符串

Date date = new Date(news_date.get(position) * 1000); 
SimpleDateFormat sdf= new SimpleDateFormat("dd.MM.yy"); 
((TextView) view.findViewById(R.id.newsTvDate)).setText(sdf.format(date)); 

這裏是我的日誌:

12-12 19:00:23.234: D/MyLog(13086): news_date.get(position)=1385323200 
12-12 19:00:23.254: D/MyLog(13086): news_date.get(position)=1384718400 
12-12 19:00:23.266: D/MyLog(13086): news_date.get(position)=1384113600 
12-12 19:00:23.275: D/MyLog(13086): news_date.get(position)=1383508800 
12-12 19:00:23.291: D/MyLog(13086): news_date.get(position)=1383076800 
12-12 19:00:55.426: D/MyLog(13086): news_date.get(position)=1382904000 

,結果我看到類似70年2月1日,69年12月26日等 如何解決呢?

+1

'news_date.get(position)* 1000'評估的是什麼? –

+4

什麼是你的問題?你想達到什麼? – Sajmon

+0

只是猜測:確保'news_date.get(位置)'不計算爲0並嘗試刪除'* 1000'。 –

回答

0

整數溢出。例如,1385323200 * 1000太大而不適合32位整數。首先將其中一個操作數提升爲64位整數:1385323200 * 1000L

+0

!非常感謝你。 timestamp是整數,所以當我爲java格式進行乘法時它會溢出 – user2976267

-1

你可能得到你的news_date.get(位置)錯電話號碼,試圖找出原因

編輯:

用錯了我的意思是一些接近0:P

+0

用日誌更新的帖子。確切地說, – user2976267

相關問題