java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java获取当前时间戳

Java获取当前时间的时间戳(13位和10位)

作者:返回值

本文主要介绍了Java获取当前时间的时间戳(13位和10位),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

背景:项目中正好用到时间戳,但是自己手写还记不住,索性就记录下来吧,要不然总是百度,😄

13位的时间戳的三种方式

long time1 = System.currentTimeMillis();
//
long time2 = Calendar.getInstance().getTimeInMillis();
//
long time3 = new Date().getTime();

运行完上述代码,显示如下;

time1:  1684398076253
time2:  1684398076253
time3:  1684398076253

10位的时间戳的三种方式

long time1 = System.currentTimeMillis() / 1000;
//
long time2 = Calendar.getInstance().getTimeInMillis() / 1000;
//
long time3 = new Date().getTime() / 1000;

运行完上述代码,显示如下;

time1:  1684398346
time2:  1684398346
time3:  1684398346

java时间戳 10位和13位分别是怎么来的?

最近遇到一个比较头疼的问题。

语言是java,将当前时间(new Date())set进bean中,然后使用fastjson将bean转换成json,存放在redis中。

但问题就来了,首先时间yyyy-mm-dd hh:mm:ss格式转换成json会自动转成时间戳,13位的,

而ios端只能解析10位的时间戳。

问题1:为什么会生成13位的时间戳,13位的时间戳和10时间戳分别是怎么来的

经过百度得知,原来java的date默认精度是毫秒,也就是说生成的时间戳就是13位的,

而像c++或者php生成的时间戳默认就是10位的,因为其精度是秒。

问题2:13位时间戳如何转换成10位时间戳

本来以为java中有设置可以修改其时间精度,后来在百度上没有找到,就只能采用其它方法来转化,这里提供两种方式来转换。

第一种:通过substring方法,将13位的时间戳最后三位数字截取

第二种:将13位时间戳除以1000取整。

ps:个人觉得这两种方法好low,目前没有更好的方法
另外提供一段时间戳转时间的代码:

/**
 * 时间戳转时间(10位时间戳)
 * @param time
 * @return
 */
public static String timestampToDate(long time) {
    String dateTime;
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    long timeLong = Long.valueOf(time);
    dateTime = simpleDateFormat.format(new Date(timeLong * 1000L));
    return dateTime;
}

到此这篇关于Java获取当前时间的时间戳(13位和10位)的文章就介绍到这了,更多相关Java获取当前时间时间戳内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文