Java中的Unix时间戳创建

6
可能有重复:
从Date()获取Unix时间戳

我有一个日期

Fri, 09 Nov 2012 23:40:18 GMT

我应该如何在Java中将其转换为类似于'1352504418'的Unix时间戳?

2个回答

15

首先获取日期对象,然后获取毫秒级时间(自1970年01月01日00:00:00以来的毫秒数),最后将毫秒数除以1000以获取UNIX时间的秒数。完成。

例如:

    String dateString = "Fri, 09 Nov 2012 23:40:18 GMT";
    DateFormat dateFormat = new SimpleDateFormat("EEE, dd MMM yyyy hh:mm:ss z");
    Date date = dateFormat.parse(dateString );
    long unixTime = (long) date.getTime()/1000;
    System.out.println(unixTime );//<- prints 1352504418

如果您的Unix时间稍后将用于从中获取日期(例如通过前端 - JavaScript日期构造函数),则不要除以1000。这会使事情变得复杂。 - CodeGems

11

Date.getTime 返回的是自1970年1月1日00:00:00以来的毫秒数,这与Unix时间戳乘以1000相同。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接