Unix/Linux 纪元时间转换示例

许多 UNIX 应用程序使用 EPOCH 时间来确定日期,在大多数 Linux 系统上,EPOCH 时间从 1970 年 1 月 1 日开始,并将在 2038 年 1 月 18 日结束,由 time_t UNIX C 库定义。
纪元时间数字包含自纪元开始以来的秒数( 1970年1月1日 0点 )。

为了更好地理解,考虑一个时代编号为“1”的例子。
现在将此纪元时间转换为实时/使用bash时,我们可以执行以下linux命令:

~$ date --date "Jan 1, 1970 00:00:00 +0000 + 1 seconds"
Thu Jan  1 10:00:01 EST 1970

要获取当前纪元时间,我们只需使用 date 命令如下:

~$ date +%s
1284763671

如上所述,要将纪元时间数字转换为实时,我们可以使用例如
bash脚本:

~$ date --date "Jan 1, 1970 00:00:00 +0000 + 1284763671 seconds"
Sat Sep 18 08:47:51 EST 2010

或者

date -d@1284763671
Sat Sep 18 08:47:51 EST 2010

perl脚本:

~$ perl -e 'print scalar(localtime(1284763671)), "\n"'
Sat Sep 18 08:47:51 2010

说明:

使用 bash 类型转换为协调世界时(Coordinated Universal Time):

~$ date -ud@1284763671
Fri Sep 17 22:47:51 UTC 2010
日期:2020-07-07 20:54:51 来源:oir作者:oir