2016-12-19 65 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

相關問題