我正在将String转换为日期,然后将其转换为整数值以使日期之间的比较更加容易。这是我的代码:

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),我知道它应该是从1970年1月1日起的时间(以毫秒为单位),但是它是负值,所以这是怎么回事?

谢谢你的帮助。

最佳答案

date.getTime()返回一个long。如果将其强制转换为int,则可能由于溢出而变为负数。

如果将代码更改为:

long lastModifiedDate =  date.getTime();

您将获得一个正值-1317580706000-该值不能容纳在int变量中。

10-07 23:28