Java开发笔记(一百五十三)时间戳的获取和转换

本文介绍了Java中获取和转换时间戳的四种方法,包括使用System类、Date实例、Calendar实例以及LocalDateTime实例。时间戳是从1970年开始以毫秒为单位累加的。同时,还阐述了如何将时间戳转换回Date、Calendar和LocalDateTime类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

日期时间是Java一个重要的数据类型,常见的日期时间格式通常为“yyyy-MM-dd HH:mm:ss”,但是计算机中存储的日期时间并非字符串形式,而是长整型的时间戳。因为字符串又占用空间又难以运算,相比之下,长整型只占用四个字节,普通的加减乘除运算更是不在话下,所以时间戳是最佳的日期时间存储方案。
获取时间戳的代码很简单,只需调用System类的currentTimeMillis方法即可,如下所示:

        // 从System类获取当前的时间戳
        long timeFromSystem = System.currentTimeMillis();
        System.out.println("timeFromSystem="+timeFromSystem);

众所周知,时间戳以毫秒为单位,为了求得它的计时起点,可以将其转换时间单位,先把毫秒的数量转成秒的数量,再把秒的数量转成分钟的数量,再把分钟的数量转成小时的数量,再把小时的数量转成天的数量,最后把天的数量转成年的数量。不过每年的天数不固定,像平年有365天,闰年有366天,按照四年一闰,平均每年的天数=(365+365+365+366)/4=365.25。于是把时间戳转为年份数量的代码就成了下面这样:

        int years = (int) (timeFromSystem/1000/60/60/24/365.25);
        System.out.println("years="+years);

运行上述转换代码,可见如下的输出日志:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值