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