从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