GMT 纪元时间
epoch time for GMT
在 AIX
date -u
以 GMT 格式给出日期和时间
date
给出本地时区的日期和时间
date +%s
以纪元时间给出当地时间
有没有办法以纪元格式获取 GMT 时间?
在我使用的 AIX 中,只有 -n 和 -u 选项可用(因此我无法使用 -f 选项)。
我的目标是计算本地时间和格林威治标准时间之间的时差。
我可以解析 $TZ environment variable
,这可能很乏味。相反,将两次之间的纪元时间差除以 60 应该可以大致给出答案。
与您所说的相反 date +%s
并没有 'give local time in epoch time'。 Epoch 是 AIX (UNIX) 时间开始计时的时刻(在 time_t 结构中)。 time_t
中的时间戳以纪元以来的秒数为单位,不计算闰秒。这就是date +%s
returns。来自 date
手册页:
%s
Displays the number of seconds since January 1, 1970, Coordinated Universal Time (CUT).
在 AIX 上解析 TZ 并不像您想象的那么乏味。与 Linux 和其他 UNIX 系统不同,TZ 在 AIX 上的构建方式始终是 std offset dst offset , rule
因此以下内容应该可以从 TZ 中提取当前偏移量:
echo $TZ | sed -e 's/.*'`date +%z`'\([-0-9:]*\).*//'
但是我认为最好和最简单的解决方案是显示您想要的内容的迷你 C 程序:
#include <time.h>
#include <stdio.h>
int main()
{
tzset();
printf("%d\n", timezone);
}
示例:
$ cc -o tz_offset tz_offset.c
$ TZ=CET-1CEST-2 ./a.out
-3600
$ TZ=EST5EDT ./a.out
18000
有关详细信息,请参阅:
man environment
man date
man ctime
在 AIX
date -u
以 GMT 格式给出日期和时间
date
给出本地时区的日期和时间
date +%s
以纪元时间给出当地时间
有没有办法以纪元格式获取 GMT 时间?
在我使用的 AIX 中,只有 -n 和 -u 选项可用(因此我无法使用 -f 选项)。
我的目标是计算本地时间和格林威治标准时间之间的时差。
我可以解析 $TZ environment variable
,这可能很乏味。相反,将两次之间的纪元时间差除以 60 应该可以大致给出答案。
与您所说的相反 date +%s
并没有 'give local time in epoch time'。 Epoch 是 AIX (UNIX) 时间开始计时的时刻(在 time_t 结构中)。 time_t
中的时间戳以纪元以来的秒数为单位,不计算闰秒。这就是date +%s
returns。来自 date
手册页:
%s
Displays the number of seconds since January 1, 1970, Coordinated Universal Time (CUT).
在 AIX 上解析 TZ 并不像您想象的那么乏味。与 Linux 和其他 UNIX 系统不同,TZ 在 AIX 上的构建方式始终是 std offset dst offset , rule
因此以下内容应该可以从 TZ 中提取当前偏移量:
echo $TZ | sed -e 's/.*'`date +%z`'\([-0-9:]*\).*//'
但是我认为最好和最简单的解决方案是显示您想要的内容的迷你 C 程序:
#include <time.h>
#include <stdio.h>
int main()
{
tzset();
printf("%d\n", timezone);
}
示例:
$ cc -o tz_offset tz_offset.c
$ TZ=CET-1CEST-2 ./a.out
-3600
$ TZ=EST5EDT ./a.out
18000
有关详细信息,请参阅:
man environment
man date
man ctime