Date 格林尼治标准时间
在AIX上Date 格林尼治标准时间,date,timestamp,unix-timestamp,aix,timezone-offset,Date,Timestamp,Unix Timestamp,Aix,Timezone Offset,在AIX上 date-u以GMT格式给出日期和时间 date给出本地时区中的日期和时间 date+%s以纪元时间给出本地时间 有没有办法以历元格式获取GMT时间 在我使用的AIX中,只有-n和-u选项可用(因此我无法使用-f选项) 我的目标是计算localtime和GMT之间的偏移量(以小时为单位)。我可以解析$TZ环境变量,这可能会很繁琐。相反,将两个历元时间差除以60应该可以大致给出答案。与您所说的相反,日期+%s没有“以历元时间给出本地时间”。Epoch是AIX(UNIX)时间开始计数的时
date-u
以GMT格式给出日期和时间date
给出本地时区中的日期和时间date+%s
以纪元时间给出本地时间有没有办法以历元格式获取GMT时间 在我使用的AIX中,只有-n和-u选项可用(因此我无法使用-f选项)
我的目标是计算localtime和GMT之间的偏移量(以小时为单位)。
我可以解析
$TZ环境变量
,这可能会很繁琐。相反,将两个历元时间差除以60应该可以大致给出答案。与您所说的相反,日期+%s
没有“以历元时间给出本地时间”。Epoch是AIX(UNIX)时间开始计数的时刻(在时间结构中)。time\u t
中的时间戳以自历元起的秒为单位,不计算闰秒。这是date+%s
返回的内容。从日期
手册页:
%s
Displays the number of seconds since January 1, 1970, Coordinated Universal Time (CUT).
在AIX上解析TZ并不像您想象的那么乏味。与Linux和其他UNIX系统不同,在AIX上构建TZ的方式始终是std offset dst offset,rule
,因此以下内容可以从TZ中提取当前偏移量:
echo $TZ | sed -e 's/.*'`date +%z`'\([-0-9:]*\).*/\1/'
然而,我认为最好、最简单的解决方案是一个迷你C程序,它可以显示您想要的:
#include <time.h>
#include <stdio.h>
int main()
{
tzset();
printf("%d\n", timezone);
}
有关更多信息,请参阅:
人类环境
人工日期
manctime
日期+%s
没有“在大纪元时间中给出本地时间”。Epoch是AIX(UNIX)时间开始计数的时刻(在时间结构中)。time\u t
中的时间戳以自历元起的秒为单位,不计算闰秒。这是date+%s
返回的内容。从日期
手册页:
%s
Displays the number of seconds since January 1, 1970, Coordinated Universal Time (CUT).
在AIX上解析TZ并不像您想象的那么乏味。与Linux和其他UNIX系统不同,在AIX上构建TZ的方式始终是std offset dst offset,rule
,因此以下内容可以从TZ中提取当前偏移量:
echo $TZ | sed -e 's/.*'`date +%z`'\([-0-9:]*\).*/\1/'
然而,我认为最好、最简单的解决方案是一个迷你C程序,它可以显示您想要的:
#include <time.h>
#include <stdio.h>
int main()
{
tzset();
printf("%d\n", timezone);
}
有关更多信息,请参阅:
人类环境
人工日期
manctime
1970-01-01T00:00:00Z
)2)日期+%z怎么样?问一个可能很明显的问题,你不能做日期-u+%s
?(很抱歉,我再也不能访问AIX了(它可能与大多数人现在使用的Linux环境有很大不同),祝你好运!您面临的问题是,本地时间和UTC自历元起的秒数是相同的。要确定时区偏移,您必须确定时间格式输出之间的差异,这充其量是痛苦的。正如@marekful所建议的,寻找%z
支持;这应该会给你一个相对于GMT的±hhmm的时区偏移量(负为UTC以西-因此在美国/太平洋时区,在Mac OS X上,`date+%z当前给出-0700,这是太平洋夏季(夏令时)时间的偏移量)。@Sheller,date-u+%s和date+%s给出了相同的数字。@SandyR:谢谢你的检查并让我们知道。像往常一样,约翰纳桑理解这个问题的变幻莫测。AIX是否有+%z
?祝你好运1) epoch不是一种格式,而是一个时间点(1970-01-01T00:00:00Z
)2)日期+%z怎么样?问一个可能很明显的问题,你不能做date-u+%s
?(很抱歉,我再也不能访问AIX了(它可能与大多数人现在使用的Linux环境有很大不同),祝你好运!您面临的问题是,本地时间和UTC自历元起的秒数是相同的。要确定时区偏移,您必须确定时间格式输出之间的差异,这充其量是痛苦的。正如@marekful所建议的,寻找%z
支持;这应该会给你一个相对于GMT的±hhmm的时区偏移量(负为UTC以西-因此在美国/太平洋时区,在Mac OS X上,`date+%z当前给出-0700,这是太平洋夏季(夏令时)时间的偏移量)。@Sheller,date-u+%s和date+%s给出了相同的数字。@SandyR:谢谢你的检查并让我们知道。像往常一样,约翰纳桑理解这个问题的变幻莫测。AIX是否有+%z
?祝你好运注意:Aix6+确实支持Olson数据库,因此TZ=Europe/Budapest是完全有效的。我的AIX知识(和硬件)没有超过5.3,感谢您提供的信息!注意:Aix6+确实支持Olson数据库,因此TZ=Europe/Budapest是完全有效的。我的AIX知识(和硬件)没有超过5.3,感谢您提供的信息!