hg 日志时区格式

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)

slm*_*slm 5

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 中也提到了这一点。

因此,我认为您最好的选择是使用帮助sedawk清理输出以满足您的需求。

参考