时间戳是自1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。在Java中,可以通过Date类和SimpleDateFormat类将时间戳转换为日期时间。
一、使用Date类和SimpleDateFormat类 {#title-1}
这个类接受一个参数(毫秒),这可以直接用时间戳来初始化。然后使用SimpleDateFormat类以特定的格式来显示日期。
import java.text.SimpleDateFormat;
import java.util.Date;
public class Main {
public static void main(String[] args) {
Long timeStamp = System.currentTimeMillis(); //获取当前时间戳
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
String sd = sdf.format(new Date(Long.parseLong(String.valueOf(timeStamp))));
System.out.println(sd);
}
}
在上面的例子中首先获得了当前的时间戳,然后创建了一个简单的日期格式,然后将时间戳转换为日期。
二、使用Instant类和DateTimeFormatter类 {#title-2}
另外,Java8引入了新的日期和时间API,可以使用Instant类和DateTimeFormatter类来替代Date类和SimpleDateFormat类。
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
Long timeStamp = System.currentTimeMillis();
LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(timeStamp), ZoneId.systemDefault());
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
System.out.println(localDateTime.format(dateTimeFormatter));
}
}
在这个例子中,首先使用Instant.ofEpochMilli方法将时间戳转换为Instant对象,然后使用LocalDateTime.ofInstant方法将Instant对象转换为LocalDateTime对象,最后通过DateTimeFormatter对LocalDateTime进行格式化。