其他分享
首页 > 其他分享> > 间隔日期计算小技巧

间隔日期计算小技巧

作者:互联网

日期计算小技巧


若需计算 给定两个日期计算 相距天数或者小时的场景可使用时间戳来简化计算

概念

时间戳:timestamp,编程语言中的时间戳单位是毫秒,unix时间戳单位是秒,能够表示的范围都是从1970-01-01 2038-01-19

实例

Java中获取当前时间戳的两种方式

# System类
long timestamp = System.currentTimeMillis();
# Data类
long timestamp = new Date().getTime();

获取指定日期时间戳

long timestamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("1970-1-1 00:00:01").getTime();
// timestamp: -28799000

发现 1970-1-1 00:00:01的时间戳不是0,于是想着怎么知道时间戳为0的日期,就有了下面的代码

String date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(0L);
// data: 1970-01-01 08:00:00

发现java中时间戳为0的时间是:1970-01-01 08:00:00,其他语言目前还没测试过

其他关于Java日期使用,观摩这篇大佬的博客

使用

那么就可以通过时间戳相减来知道两个日期相间距的时间

long time1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2020-1-1 00:00:00").getTime();
long time2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2021-1-1 00:00:00").getTime();
System.out.println(time2-time1); // 31622400000 毫秒数
System.out.println((time2-time1)/1000); // 31622400 秒数
System.out.println((time2-time1)/(1000*60)); // 527040 分钟数
System.out.println((time2-time1)/(1000*60*24)); // 21960 小时数
System.out.println((time2-time1)/(1000*60*60*24)); // 366 天数

标签:00,01,技巧,timestamp,间隔,System,time2,time1,日期
来源: https://blog.csdn.net/lamperouge_conan/article/details/112408368