Fun*_*Cat 6 date mercurial timezone
对于hg
,我可以使用--template
键设置格式以仅输出日期,如下所示:
> hg log -l1 --template "{date(date, '%Y-%m-%d %H:%M:%S')}\n"
2016-10-07 10:22:41
Run Code Online (Sandbox Code Playgroud)
我可以使用%z
控件输出时区偏移:
> hg log -l1 --template "{date(date, '%Y-%m-%d %H:%M:%S %z')}\n"
2016-10-07 10:22:41 +0300
Run Code Online (Sandbox Code Playgroud)
此外,在 OpenSusedate
实现中,可以%:::z
控制更易读的格式:
> date +'%Y-%m-%d %H:%M:%S %:::z'
2016-10-07 11:03:34 +03
Run Code Online (Sandbox Code Playgroud)
它不是 POSIX 控件,但有没有办法在hg log
格式化中实现这样的目标?简单的方法不起作用:
> hg log -l1 --template "{date(date, '%Y-%m-%d %H:%M:%S %:::z')}\n"
2016-10-07 10:22:41 %:::z
Run Code Online (Sandbox Code Playgroud)
来自man date
:
%:::z 数字时区,带 : 到必要的精度(例如,-04、+05:30)
isodate 过滤器似乎最接近您想要的。
$ hg log -r1 --template 'date: {date|isodate}\n'
date: 2009-05-05 06:55 +0000
Run Code Online (Sandbox Code Playgroud)
isodate:日期关键字。将日期呈现为 ISO 8601 格式的文本字符串。产生类似“2006-09-04 15:13:13 -0700”的字符串。
压缩时区似乎不可行。甚至在题为“剥离汞日期”的 SO Q&A 中也提到了这一点。
因此,我认为您最好的选择是使用帮助sed
或awk
清理输出以满足您的需求。