间隔日期计算小技巧

日期计算小技巧


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

概念

时间戳: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 天数
上一篇:安装GPU版pytorch


下一篇:用原生JS进行CSS格式化和压缩