如何在TCL中打印绝对时间?
输出类似于2018-03-07-14:32:09.040+05:30I-----
我想创建一个逻辑来打印epoch microseconds。但我无法在构建clock milliseconds
中使用以打印纪元微秒。
答案 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