UNIX 时间戳

1,864 阅读1分钟

UNIX 时间戳

UNIX 时间戳又称 POSIX 时间戳,是 UNIX 或类 UNIX 系统使用的时间表示方式:采用 UTC+00:00 1970 年 1 月 1 日 0 时 0 分 0 秒起至现在的总秒数,不考虑闰秒

以上是 UNIX 时间戳的定义,从定义中我们可以看出

  1. UNIX 时间戳采用的是 UTC(协调时间时),并且时区固定为 +00:00
  2. UNIX 时间戳精度为
  3. UNIX 时间戳的值不包含闰秒

java 中的时间戳

java 中的时间戳定义与 UNIX 时间戳的定义基本一致,唯一的区别是时间戳精确到了毫秒

获取13位(精确到毫秒)的时间戳

// 方法一 currentTimeMillis()由于是调用本地方法,速度最快,当只需要获取当前时间的时间戳时,推荐使用
long timestamp = System.currentTimeMillis();


// 方法二  使用的是旧的 java.util 包中的日历类,不推荐使用
long timestamp =Calendar.getInstance().getTimeInMillis();

// 方法三  使用的是旧的 java.util 包中的日期类,不推荐使用
long timestamp =new Date().getTime();

// 方法四 使用的是 java 8 中 java.time 包中的时间戳,推荐使用
long timestamp =Instant.now().toEpochMilli();

总结:只需要获取当前时间的时间戳,使用 System.currentTimeMillis(); ,其他时候使用 Instant 类的 toEpochMilli(); 方法,避免使用 java.util 包中的 时间相关类

mysql 中的时间戳

获取10位精确到秒的 UNIX 时间戳

SELECT unix_timestamp(now())