千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > Java获取当前时间戳的方法

Java获取当前时间戳的方法

来源:千锋教育
发布人:xqq
时间: 2023-11-23 08:30:49 1700699449

在Java编程中,获取当前时间戳是一个常见需求,时间戳可以保存为long类型的整数,是指从1970年1月1日0时0分0秒(UTC,即格林威治标准时间)开始到当前时间的秒数。以下是几种获取Java当前时间戳的方法:

一、使用System.currentTimeMillis()

long timestamp = System.currentTimeMillis();

System.currentTimeMillis()返回从UTC 1970年1月1日0时0分0秒到当前时间的毫秒数,我们可以直接除以1000转换成秒数,也可以将返回值直接保存到long类型的变量中。

使用System.currentTimeMillis()方法获取时间戳的优点是方法执行速度快,缺点是返回值只能精确到毫秒级,如果需要更精确的时间戳,可以使用System.nanoTime()方法。

二、使用Instant.now().getEpochSecond()

long timestamp = Instant.now().getEpochSecond();

Instant类是Java 8新增的API,可以用来表示时间线上的一个瞬间。可以获取当前的Instant实例,然后调用getEpochSecond()方法得到从UTC 1970年1月1日0时0分0秒到当前时间的秒数。

使用Instant类获取时间戳的优点是可以精确到纳秒级别,缺点是代码编写比较麻烦,而且需要使用Java 8以上的版本。

三、使用new Date().getTime()

long timestamp = new Date().getTime();

在早期版本的Java中,我们可以使用Date类来获取当前时间戳,调用getTime()方法可以获得从UTC 1970年1月1日0时0分0秒到当前时间的毫秒数。

使用Date类获取时间戳的缺点是它已经过时,不建议使用,多线程环境下可能存在线程安全问题。

四、使用Calendar.getInstance().getTime().getTime()

long timestamp = Calendar.getInstance().getTime().getTime();

我们也可以使用Calendar类来获取当前时间戳,首先需要获取一个实例,然后调用getTime()方法得到一个Date对象,再调用Date对象的getTime()方法即可获得时间戳。

Calendar类获取时间戳和Date类类似,同样已经过时,也不建议使用。

五、通过java.sql.Timestamp获取当前时间戳

Timestamp timestamp = new Timestamp(System.currentTimeMillis());
long ts = timestamp.getTime();

Timestamp类也可以用来表示时间戳,它可以精确到纳秒级别。我们可以创建一个Timestamp实例,传入System.currentTimeMillis()方法的返回值作为参数,然后调用getTime()方法即可得到时间戳。

使用Timestamp类获取时间戳的缺点是代码比较冗长,需要创建对象。

六、使用Joda-Time类库获取当前时间戳

long timestamp = DateTime.now().getMillis() / 1000;

Joda-Time类库是常用的Java时间和日期操作类库,它提供了多种方式来获取当前时间戳。

我们可以使用DateTime类来表示当前时间,调用getMillis()方法可以获得从UTC 1970年1月1日0时0分0秒到当前时间的毫秒数,然后除以1000即可得到时间戳。

使用Joda-Time类库获取时间戳可以简洁明了,而且可以精确到毫秒级别。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT