如何在Tcl中转换包含毫秒的时间对象
Tcl解析含毫秒的时间字符串解决方案
要解析带毫秒的时间字符串,只需修改clock scan的-format参数,加入毫秒匹配格式符%3f即可:
修改后的代码示例
set date1 "2022-01-30 00:00:08.912" # 用%S.%3f匹配秒+毫秒部分 set timestamp [clock scan $date1 -format {%Y-%m-%d %H:%M:%S.%3f} -gmt 1] puts $timestamp
这段代码会返回包含毫秒的浮点型时间戳(如1643481608.912),代表从UTC纪元开始的秒数(小数部分对应毫秒)。
扩展:将带毫秒的时间戳转回字符串
如果需要把解析得到的时间戳再格式化为带毫秒的字符串,可使用clock format配合同样的格式符:
puts [clock format $timestamp -format {%Y-%m-%d %H:%M:%S.%3f} -gmt 1]
输出结果为:2022-01-30 00:00:08.912
注意事项
%3f用于匹配三位毫秒数,如果你的时间字符串包含更高精度(如微秒),可改用%6f- 该方案适用于Tcl 8.5及以上版本(8.5开始支持浮点型时间戳)
内容的提问来源于stack exchange,提问作者newdeveloper
相关产品推荐
相关产品推荐

