从Date()获取unix时间戳

我可以通过将long值放入Date()构造函数中,将unix时间戳转换为Date()对象。 例如:我可以把它作为new Date(1318762128031)

但之后,我怎样才能从Date()对象取回unix时间戳?

getTime()获取1970年1月1日以来传递给构造函数的毫秒数。 获得Unix时间不应该太难(相同,但是以秒为单位)。

 import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.TimeZone; public class Timeconversion { private DateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmm", Locale.ENGLISH); //Specify your locale public long timeConversion(String time) { long unixTime = 0; dateFormat.setTimeZone(TimeZone.getTimeZone("GMT+5:30")); //Specify your timezone try { unixTime = dateFormat.parse(time).getTime(); unixTime = unixTime / 1000; } catch (ParseException e) { e.printStackTrace(); } return unixTime; } } 

为了从Date()获得unix时间戳,我们需要分割getTime() / 1000

 Date currentDate = new Date(); currentDate.getTime() / 1000; // 1397132691 

或者干脆:

 long unixTime = System.currentTimeMillis() / 1000L; 

在java 8中,使用新的date库和getEpochSecond方法来获取时间戳(这是第二个)

Instant.now().getEpochSecond();

使用SimpleDateFormat类。 看看它的javadoc:它解释了如何使用格式开关。

我不知道你是否想在js或java中实现这一点,用js获得unix时间戳的最简单的方法(这是从1970年1月1日开始的时间),如下所示:

 var myDate = new Date(); console.log(+myDate); // +myDateObject give you the unix from that date