2013-12-12 3 views
0

Я пытаюсь установить дату в адаптере ListView из ArrayList временных меток, полученных с сервера.Неправильное преобразование временной метки сервера в String

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 

и в результате я вижу что-то вроде 02.01.70, 26.12.69 и т.д. , как это исправить?

+1

Что делает 'news_date.get (позиция) * 1000' оценить? –

+4

И что именно ваша проблема? Чего вы хотите достичь? – Sajmon

+0

Просто угадайте: убедитесь, что 'news_date.get (position)' не оценивается в 0 и пытается удалить '* 1000'. –

ответ

0

переполнении Integer ,

Например, 1385323200 * 1000 слишком большой, чтобы поместиться в 32-битное целое число. Сначала продвигайте один из операндов до 64-битного целого числа: 1385323200 * 1000L.

+0

точно! Большое спасибо. timestamp является целым числом, поэтому он переполняется, когда я умножаю для формата java – user2976267

-1

вы, вероятно, получить неправильный номер в вашем news_date.get (положение), попытаться выяснить, почему

редактировать:

от плохого я имею в виду что-то близкое к 0: P

+0

Обновлено сообщение с журналом. – user2976267

Смежные вопросы