如何在TCL中打印绝对时间和TCL中的相对时间?

时间:2018-03-07 09:28:26

标签: tcl

如何在TCL中打印绝对时间?

输出类似于2018-03-07-14:32:09.040+05:30I-----

我想创建一个逻辑来打印epoch microseconds。但我无法在构建clock milliseconds中使用以打印纪元微秒。

2 个答案:

答案 0 :(得分:1)

您应该参考clock microseconds的{​​{3}}:

  

以整数微秒为单位返回当前时间。

但是,clock format不支持此高分辨率时钟值。因此,您必须手动提取结果的微秒小数部分,使用clock format以秒精度输出值,然后手动添加相关小数值的微秒(" .XXXXXX")它。

此脚本将以微秒精度输出时间:

# get current time with microseconds precision:
set val [clock microseconds]
# extract time with seconds precision:
set seconds_precision [expr { $val / 1000000 }]
# find number of microseconds:
set microseconds [expr { $val - $seconds_precision*1000000 }]

# output the epoc with microseconds precision:
puts [format "%s.%06d" [clock format $seconds_precision -format "%Y-%m-%d %H:%M:%S"] $microseconds]

输出2018-03-07 11:04:59.946580

如果您更喜欢毫秒精度或者想要显示时区,则可以调整脚本。

答案 1 :(得分:0)

这可能会对您有所帮助:

set milliseconds [clock clicks]
variable time [format "%s_%03d" [clock format [clock seconds] -format %Y%m%d_%H%M%S] [expr {$milliseconds % 1000}] ]

puts $time