2015-02-17 4 views
2

Я преобразовываю String в дату, а затем преобразовываю его целочисленное значение, чтобы упростить сравнение между датами. Вот мой код:Java Date getTime возвращает отрицательное значение

SimpleDateFormat format = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz",Locale.US); 
lastModified = "Sun, 02 Oct 2011 18:38:26 GMT"; 
Date date = format.parse(lastModified); 
lastModifiedDate = (int) date.getTime(); 

Затем я принтер lastModifiedDate и это было (-974253872), я знаю, что это должно быть время в миллисекундах с 1 января 1970 года, но это отрицательное значение, так что происходит?

Благодарим за помощь.

ответ

7

date.getTime() возвращает long. Если вы нажмете его на int, это может стать отрицательным из-за переполнения.

Если вы измените код:

long lastModifiedDate = date.getTime(); 

Вы получите положительное значение - 1317580706000 - который не может поместиться в переменную Int.

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