2016-12-19 61 views
2

如何格式化时差值,使用time-subtract计算?考虑这个简单的例子:格式与%H的时差

(let* 
    ((before (current-time)) 
    (after (progn (sit-for 0.25) (current-time))) 
    (diff (time-subtract after before))) 
    (insert (format "before: %s--%s\n" before (format-time-string "%Hh%Mm%S.%3Ns" before))) 
    (insert (format "after: %s--%s\n" after (format-time-string "%Hh%Mm%S.%3Ns" after))) 
    (insert (format "diff: %s--%s--%s\n" diff (format-time-string "%s.%3Ns" diff) 
        (format-time-string "%Hh%Mm%S.%3Ns" diff)))) 

评价其插入以下:

 
before: (22616 21856 296901 800000)--13h47m12.296s 
after: (22616 21856 552345 800000)--13h47m12.552s 
diff: (0 0 255444 0)--0.255s--16h00m00.255s 

在两个时间戳之间的差是大约250毫秒。但使用格式格式化它"%Hh%Mm%S.%3Ns"产生16.

它不应该是0吗?

+1

您可能想通过[接受答案]关闭您的问题(http://meta.stackexchange.com/q/5234/215439) – sds

回答

3

"16"来自您的时区。

我想如果你做(format-time-string "%Hh%Mm%S.%3Ns" diff 0),你会看到你期望的结果(即0)。

+2

谢谢。如果我花了一半的时间阅读帮助,我花了格式的问题... –

+1

...那么我不会赢得回答它的要点:-)(不用客气) – sds

相关问题