您的位置:

Java时间戳转时间

一、什么是时间戳

时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总秒数,通常用10位数字表示。

在Java中,System.currentTimeMillis()方法可以返回当前时间的时间戳。

long timestamp = System.currentTimeMillis();

二、时间戳转日期

我们可以使用Java的SimpleDateFormat类将时间戳转化为日期格式。

long timestamp = System.currentTimeMillis();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date = sdf.format(new Date(timestamp));
System.out.println(date); // 2021-07-16 14:05:36

其中,SimpleDateFormat中的参数"yyyy-MM-dd HH:mm:ss"表示日期格式。

三、时区问题

在不同的时区中,同样的时间戳所表示的时间是不同的。因此,在进行时间戳转换时,我们需要注意时区问题。

Java中可以使用TimeZone类来设置时区,通常使用TimeZone.getDefault()方法获取系统默认时区。

long timestamp = System.currentTimeMillis();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("GMT+8")); // 将时区设置为东八区
String date = sdf.format(new Date(timestamp));
System.out.println(date); // 2021-07-16 22:05:36

四、日期转时间戳

我们也可以将日期转化为时间戳,使用Java中的getTime()方法即可。

String dateStr = "2021-07-16 14:05:36";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
long timestamp = sdf.parse(dateStr).getTime();
System.out.println(timestamp); // 1626421536000

五、总结

本文介绍了Java中将时间戳转化为日期、设置时区、将日期转化为时间戳的方法。在进行时间戳转换时,需要注意时区问题,使用TimeZone类来设置时区。