2014-08-31 236 views
3

如果提交日期Mon Aug 18 21:05:38 2014 +0200,如何在几秒钟内获取它的Unix时间戳?获取Unix时间戳(以秒为单位)进行hg提交

以下命令将生成一个数字,丢弃数(大概是因为date时区信息得到丢弃):

$ hg log -l1 --template '{date(date, "%s")}\n' 
1408392338 
$ date [email protected] 
Mon Aug 18 22:05:38 CEST 2014 

我有效地寻找产生的提交日期为git命令相同一个Unix时间戳:

git log -n1 --pretty=%ct 

回答

1

请求的时间戳是独立于时区的,因此UTC时间。作为date(..., "%s")产生许多其是相对于当前时区,一个应由localdate滤波器与TZ环境变量组合请求UTC输出设置时区:

TZ=UTC hg log -l1 --template '{date(date|localdate, "%s")}\n') 
0
  • 你可以得到变更的日期任何格式,了解最新的-d选项,并用它在date -d -F
  • 您可以使用关键字与过滤

样品

hg log -r tip -T "date: {date}\nhgdate: {date|hgdate}\nISO-date: {date|isodate}\n" 
date: 1390885140.0-21600 
hgdate: 1390885140 -21600 
ISO-date: 2014-01-28 10:59 +0600 

我认为(懒得测试),表达1390885140-21600的结果会给你正确的时间戳

+1

我也尝试'日期| hgdate',但除了奇格式,它确实没有给出预期的结果。显然,第一个字段是当地时间,所以要得到UTC,必须减去(而不是增加)第二个字段。 – Lekensteyn 2014-08-31 22:04:06

相关问题