时间戳是自1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。在Java中,可以通过Date类和SimpleDateFormat类将时间戳转换为日期时间。
一、使用Date类和SimpleDateFormat类
这个类接受一个参数(毫秒),这可以直接用时间戳来初始化。然后使用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类
另外,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进行格式化。