Skip to main content

Unix 时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。

在Java中获取unix时间戳的方法

使用即时类

如果你使用的是Java 8或更高版本,你可以使用 Instant 类在Java中获得unix时间戳。

import java.time.Instant;

public static void main(String[] args) {
long unixTimestamp = Instant.now().getEpochSecond();
System.out.println("Unix timestamp: "+unixTimestamp);
}

// Unix timestamp: 1675500015

使用System.currentTimeMillis()

你可以避免创建日期/即时对象,并使用 System.currentTimeMillis() 来获得以毫秒为单位的当前时间。你可以通过1000L ,将毫秒转换为秒。

public static void main(String[] args) {
long unixTimestamp = System.currentTimeMillis()/1000L;
System.out.println("Unix timestamp: " + unixTimestamp);
}

// Unix timestamp: 1675500095

使用Date的getTime()方法

你可以使用传统的Date的getTime()方法来获得Java中的unix时间戳。你需要将()时间除以1000L ,将毫秒转换为秒。

public static void main(String[] args) {
long unixTimestamp = new Date().getTime()/1000L;
System.out.println("Unix timestamp: " + unixTimestamp);
}

// Unix timestamp: 1675500240

在Java中把Date转换为unix时间戳

使用即时类

你可以使用 toInstant() 方法从Date对象中获得 Instant() ,使用 getEpochSecond() 获得unix时间戳。

public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_MONTH, 4);
cal.set(Calendar.MONTH, 2);
cal.set(Calendar.YEAR, 2023);

Date givenDate = cal.getTime();
long unixTimestamp = givenDate.toInstant().getEpochSecond();
System.out.println("Unix timestamp: "+unixTimestamp);
}

// Unix timestamp: 1677919638

你也可以用LocalDate代替java.util.Date 。你需要先把LocalDate转换为Instant,然后用 getEpochSecond() ,在Java中把LocalDate转换为unix时间戳。

public static void main(String[] args) {
// Get LocalDate object
LocalDate localDate = LocalDate.of(2023,2,4);

// Convert LocalDate to Instant with ZoneOffSet
Instant instant = localDate.atStartOfDay().toInstant(ZoneOffset.UTC);

// Get unix timestamp from Instant
long epochSecond = instant.getEpochSecond();
System.out.println("Unix timestamp: "+epochSecond);
}

// Unix timestamp: 1675468800

使用Date的getTime()方法

你可以使用传统的Date的getTime()方法,在Java中把Date转换为unixTimeStamp。你需要将()时间除以1000L ,将毫秒转换为秒。

public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_MONTH, 4);
cal.set(Calendar.MONTH, 2);
cal.set(Calendar.YEAR, 2023);

Date givenDate = cal.getTime();
long unixTimestamp = givenDate.getTime()/1000L;
System.out.println("Unix timestamp: "+unixTimestamp);
}

// Unix timestamp: 1677919718