一、什么是时间戳
时间戳指的是从1970年1月1日0时0分0秒(北京时间,东八区)开始到现在的总秒数。这种方式表示的时刻称为“UNIX时间戳”(Unix timestamp)。
时间戳通常是跨平台、跨语言的,可以用于统计某个事件发生的时间、计算程序运行时间等。
二、Java中时间戳的表示
在Java中,时间戳一般用long类型表示,并以“毫秒”作为单位。
//获取当前时间戳 long currentTimestamp = System.currentTimeMillis();
三、Java中将日期转为时间戳的方法
Java中可以使用Date类和SimpleDateFormat类来将日期转为时间戳。
1. 使用Date类
通过Date类的getTime()方法可以获取该日期的时间戳。
import java.util.Date; public class DateToTimestamp { public static void main(String[] args) { //创建一个Date对象,表示当前时间 Date date = new Date(); //获取时间戳 long timestamp = date.getTime(); System.out.println(timestamp); } }
2. 使用SimpleDateFormat类
通过SimpleDateFormat类的parse()方法可以将字符串格式的日期转为Date对象,再通过getTime()方法获取时间戳。
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class StringToTimestamp { public static void main(String[] args) throws ParseException { //将字符串格式的日期转为Date对象 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = sdf.parse("2022-01-01 00:00:00"); //获取时间戳 long timestamp = date.getTime(); System.out.println(timestamp); } }
四、注意事项
在将字符串格式的日期转为Date对象时,需要注意以下几点:
1. SimpleDateFormat中的日期格式要与字符串格式的日期相对应。
2. 字符串格式的日期不一定要包含时分秒。
3. 月份从0开始计数,即0表示1月,11表示12月。