linux date命令日期时间输出格式

在使用date命令输出日期时间时,通过格式字符串可以指定日期时间的格式。根据格式字符串中格式说明符的作用可分为以下几类。

日期转换说明符

%a:当前区域设置下星期的缩写,如“Sun”、“Mon”。

%A:当前区域设置下星期的全拼,如“Sunday”、“Monday”。

%b:当前区域设置下月份的缩写,如“Jan”、“Feb”。

%B:当前区域设置下月份的全拼,如“January”、“February”。

%c:当前区域设置下的日期和时间,如“Sat 19 Jan 2019 05:51:45 PM CST”。

%C:世纪,类似%Y,只是最后两个数字被省略了,如%Y为2019,则%C为20。

%d:一月中的那一天,如“19”、“05”。

%D:日期,等效于“%m/%d/%y”(美国格式),如“01/19/19”。

%e:一月中的那一天,空格填充,等效于“%_d”,如“19”、“ 5”。

%F:ISO 8601格式的完整日期,等效于“%Y-%m-%d”,如“2019-01-19”。对于日期格式,这是一个很好的选择,因为它是标准的,并且在年份范围为0000…9999的通常情况下很容易排序。

%g:ISO周数对应的不包含世纪的年份(00-99),等效于“%y”,除非ISO周数属于前一年或后一年,则使用前一年或后一年。

%G:ISO周数对应的年份(0000-9999),等效于“%Y”,除非ISO周数属于前一年或后一年,则使用前一年或后一年。格式“%G-%m-%d”有可能是错误的,因为它将ISO周数的年与传统的月和日结合在了一起。

%h:等效于“%b”。

%j:一年中的天数(001-366)。

%m:月份(01-12)。

%u:星期的天数(1-7),1是周一。

%U:周数(00-53), 周日为一周的第一天。新年第一个星期日之前的几天是第零周。

%V:ISO周数(01-53),周一为一周的第一天。如果包含1月1日的一周在新的一年里有四天或四天以上,则认为这周是第一周,否则就是前一年的第53周,下一周是新年的第一周。

%w:星期的天数(0-6),0是周日。

%W:周数(00-53),周一为一周的第一天。新年第一个星期一之前的几天是第零周。

%x(小写):按当前区域设置下的日期格式,如“01/19/2019”。

%y:年份的后两位(00-99)。

%Y:年份。

时间转换说明符

%H:时(00-23)。

%I(大写i):时(01-12)。

%k:时,空格填充( 0-23),等效于“%_H”,是GNU扩展。

%l(小写l):时,空格填充( 0-12),等效于“%_I”,是GNU扩展。

%M:分(00-59)。

%N:纳秒(000000000-999999999),是GNU扩展。

%p:本地区域设置下等价于“AM”或“PM”,在许多地区是空字符串。中午视为“PM”,午夜视为“AM”。

%P:与%p一样,只不过是小写的,是GNU扩展。

%r:本地区域设置下12小时制时间,如11:11:20 PM。

%R:24小时制的时和分,等效于“%H%M”,如“23:12”。

%s:从UTC时间纪元起的秒数,除非有闰秒支持,否则不计算闰秒,是GNU扩展。

%S:秒(00-60),如果支持闰秒则可能为60。

%T:24小时制的时分秒,等效于“%H:%M:%S”。

%X:(大写):按当前区域设置下的日期格式,如“10:53:24 PM”。

%z(小写):四位数字表示的时区,如“+0800”。如果时区不确定则为“-0000”。此值为使用TZ环境变量指定的时区规则。时区规则可以被-d(--date)选项覆盖。

%:z(小写):带“:”的数字时区。如“+08:00”。如果时区不确定则为“-00:00”,是GNU扩展。

%::z(小写):带“:”的精确到秒的数字时区。如“+08:00:00”。如果时区不确定则为“-00:00:00”,是GNU扩展。

%:::z(小写):带“:”的使用最小必要精度的时区。如“+08”、“+08:30:20”。如果时区不确定则为“-00”,是GNU扩展。

%Z(大写):按字母顺序排列的时区缩写。如“CST”。如果时区不确定则返回空字符串。

文字转换说明符

%%:字符“%”。

%n:换行符。

%t:制表符。

填充标记说明符

除非另外指定否则,date通常用0填充数字,比如数字月份总是输出两个数字。做为GNU扩展,date可以识别“%”后面的以下标记:

-(连字号):不进行填充。

_(下划线):填充空格。

0:填充0。

^:如果可能的话,使用大写字符。

#:如果可能的话,使用大小写相反的字符(大写变小写,小写变大写)。

可以在任意标记之后说明符之前加上一个数字来指定域的宽度,如果输出域的自然长度小于指定的域宽度,会自动填充左侧到指定长度。比如“%10a”,输出为“       Mon”,长度为10,左侧被空格填充。通常在不指定填充符的情况下,如果输出格式为纯数字会用0填充,如果包含非数字字符,则用空格填充。数字时区例外,数字时区中虽然包含“+”、“-”或“:”,但依然会用0填充,且是填充在“+”、“-”号之后。

此外,在标记和宽度后面可以跟一个可选修饰符,修饰符有两个:

E:如果可以,使用本地区域设置下的替代表示。此修饰符适用于转换修饰符“%c”、“%c”、“%x”、“%x”、“%y”和“%y”。

O:如果可以,使用本地区域设置下的数字符号。此修饰符适用于数值的转换修饰符。

如果格式支持修饰符,但是没有可替代的表示,则会忽略修饰符。

你可能感兴趣的:(linux date命令日期时间输出格式)