在这篇文章中,我们将在Java中获得unix时间戳。
根据wikipedia
Unix时间是一个描述时间点的系统。它是自Unix纪元以来所经过的秒数,不包括闰秒。Unix纪元是1970年1月1日的00:00:00 UTC。
Unix时间是描述时间点的标准方式,在多个类似unix的操作系统中使用。
在Java中获取unix时间戳的方法
在Java中获取unix时间戳有多种方法。
使用即时类
如果你使用的是Java 8或更高版本,你可以使用Instant 类在Java中获得unix时间戳。
package org.arpit.java2blog;
import java.time.Instant;
public class GetUnixTimeStampMain {
public static void main(String[] args) {
long unixTimestamp = Instant.now().getEpochSecond();
System.out.println("Unix timestamp: "+unixTimestamp);
}
}
输出
Unix timestamp: 1663659792
使用System.currentTimeMillis()
你可以避免创建日期/即时对象,并使用System.currentTimeMillis() 来获得以毫秒为单位的当前时间。你可以通过1000L ,将毫秒转换为秒。
package org.arpit.java2blog;
public class GetUnixTimeStampSystem {
public static void main(String[] args) {
long unixTimestamp = System.currentTimeMillis()/1000L;
System.out.println("Unix timestamp: " + unixTimestamp);
}
}
输出
Unix timestamp: 1663660088
使用Date的getTime()方法
你可以使用传统的Date的getTime()方法来获得Java中的unix时间戳。你需要将()时间除以1000L ,将毫秒转换为秒。
package org.arpit.java2blog;
import java.util.Date;
public class GetUnixTimeStampDate {
public static void main(String[] args) {
long unixTimestamp = new Date().getTime()/1000L;
System.out.println("Unix timestamp: " + unixTimestamp);
}
}
输出
Unix timestamp: 1663660228
在Java中把Date转换为unix时间戳
使用即时类
你可以使用toInstant() 方法从Date对象中获得Instant() ,使用getEpochSecond() 获得unix时间戳。
package org.arpit.java2blog;
import java.util.Calendar;
import java.util.Date;
public class GetUnixTimeStampDate {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_MONTH, 20);
cal.set(Calendar.MONTH, 8);
cal.set(Calendar.YEAR, 2022);
Date givenDate = cal.getTime();
long unixTimestamp = givenDate.toInstant().getEpochSecond();
System.out.println("Unix timestamp: "+unixTimestamp);
}
}
输出
Unix timestamp: 1663660884
你也可以用LocalDate代替java.util.Date 。你需要先把LocalDate转换为Instant,然后用getEpochSecond() ,在Java中把LocalDate转换为unix时间戳。
package org.arpit.java2blog;
import java.time.Instant;
import java.time.LocalDate;
import java.time.ZoneOffset;
public class GetUnixTimeStampDate {
public static void main(String[] args) {
// Get LocalDate object
LocalDate localDate = LocalDate.of(2022,10,23);
// 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: 1666483200
使用Date的getTime()方法
你可以使用传统的Date的getTime()方法,在Java中把Date转换为unixTimeStamp。你需要将()时间除以1000L ,将毫秒转换为秒。
package org.arpit.java2blog;
import java.util.Calendar;
import java.util.Date;
public class GetUnixTimeStampDate {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_MONTH, 20);
cal.set(Calendar.MONTH, 8);
cal.set(Calendar.YEAR, 2022);
Date givenDate = cal.getTime();
long unixTimestamp = givenDate.getTime()/1000L;
System.out.println("Unix timestamp: "+unixTimestamp);
}
}
输出
Unix timestamp: 1663660228
以上就是关于如何在Java中获取Unix时间戳的全部内容。