Unix时间戳给我一个约为40,000年的日期

时间:2013-11-20 10:22:30

标签: java date unix datetime

所以我得到一个日期字符串。示例:2012-10-22 10:00:00现在我想要这个日期的Unix时间戳。首先,我必须将其转换为SimpleDateFormat

String metaDate             = (metaDateList.item(0)).getNodeValue(); //2012-10-22 10:00:00 
SimpleDateFormat sdf        = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss");
Date nonUnixDate;
nonUnixDate                 = sdf.parse(metaDate);
System.out.println ( nonUnixDate.getTime() );`

我遇到的问题是unix时间戳为1358675994000,即Thu, 23 Sep 45024 14:20:00 GMT。好像我在某个地方有错误,但它在哪里?

2 个答案:

答案 0 :(得分:4)

The unix timestamp以秒为单位定义。

Date.getTime()返回毫秒。

所以你的结果将会减少1000倍。

答案 1 :(得分:4)

您使用的格式错误,应使用MM

SimpleDateFormat sdf        = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");