一、什么是时间戳
时间戳是指格林威治时间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类来设置时区。