【小知识大用处】Java与Unix时间戳互转-阿里云开发者社区

开发者社区> 沉默王二> 正文

【小知识大用处】Java与Unix时间戳互转

简介: 【小知识大用处】Java与Unix时间戳互转
+关注继续查看

随着读者的数量越来越多,总不免被问到一些“面向搜索引擎”的问题,比如说:“Java 怎么与 Unix 时间戳互转啊?”期初我很受不了,问得多了我就习惯了,于是就打算把这些小知识点统一写成文章,到时候直接扔给读者。


Unix 时间戳是指从1970 年 1 月 1 日(UTC/GMT 的午夜)开始所经过的秒数,不考虑闰秒。比如说 1578179845。


Java 中获取时间戳的大多数 API 返回的并不是 Unix 时间戳,而是从1970 年 1 月 1 日(UTC/GMT 的午夜)开始所经过的毫秒数。比如说 1578179845000。


System.currentTimeMillis();

Calendar.getInstance().getTimeInMillis();

new Date().getTime();



将毫秒级转成秒级很简单,除以 1000 就搞定。


long timeStamp = System.currentTimeMillis();

int timeStampUnix = (int) (timeStamp / 1000);



但是时间戳这样的数据对用户来说就好像是天文数字,因此需要一些加工处理,使其变成用户习惯的格式,Java 是怎么格式化这些时间戳呢?


int timeStampUnix = 1578179845;

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String result = simpleDateFormat.format(new Date(timeStampUnix * 1000L));

// 2020-01-05 07:17:25



使用 SimpleDateFormat 类,指定对应的格式,然后再将时间戳转成 Date,最后进行 format 格式化。


那怎么再转成时间戳呢?


String str = "2020-01-05 07:17:25";

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

int timeStampUnix = (int) (simpleDateFormat.parse(str).getTime() / 1000);

// 1578179845


不过,在实战项目中,我们通常借用第三方类库来实现转换,比如说格式化间戳可以使用 org.apache.commons.lang3.time.DateFormatUtils。


DateFormatUtils.format(1578179845 * 1000L,"yyyy-MM-dd HH:mm:ss")

1

再转成时间戳可以使用 org.apache.commons.lang3.time.DateUtils。


DateFormatUtils.format(1578179845 * 1000L,"yyyy-MM-dd HH:mm:ss")


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
使用NAT网关轻松为单台云服务器设置多个公网IP
在应用中,有时会遇到用户询问如何使单台云服务器具备多个公网IP的问题。 具体如何操作呢,有了NAT网关这个也不是难题。
26538 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,大概有三种登录方式:
2840 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
11013 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
10472 0
使用SSH远程登录阿里云ECS服务器
远程连接服务器以及配置环境
2294 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
11943 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
12293 0
如何设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
7340 0
+关注
沉默王二
微信搜索「沉默王二」,回复关键字「00」获取硬核计算机基础资料。
1084
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载