2013-03-17 155 views
0

是否可以采用日期字符串(例如2013-02-26 10:45:54,082),并从“时代”获取以毫秒为单位的时间?或类似的东西?从日期获取时间(以毫秒为单位)

我知道clock scan以秒为单位返回时间。 也clock scan返回此特定格式的错误。

我找不到的东西,因为我想,我要确保之前,我开始创建它,它不存在...

感谢

回答

2

毫秒级偏差不通过Tcl的支持(因为它是在实践中相当罕见的格式),但你可以解决的是:

set str "2013-02-26 10:45:54,082" 
regexp {^([^\.,]*)[\.,](\d+)$} $str -> datepart millipart; # split on the last occurrence of , or . 
set timestamp [clock scan $datepart -format "%Y-%m-%d %H:%M:%S" -gmt 1] 
scan $millipart "%d" millis 
set millistamp [expr {$timestamp*1000 + $millis}] 

(你不提供时区信息,所以我认为这是UTC,即“ GMT“。我也允许使用.而不是,作为一个mi你得到的第二个分隔符取决于创建时间字符串的语言环境。)

+0

不知何故,它不适用于时钟扫描选项'-format':**坏开关“-format”:必须是-base或-gmt 执行时 “时钟扫描$ datepart -format”%Y-%m-%d%H:%M:%S“-gmt 1”** 但它没有它, – hudac 2013-03-20 07:23:20

相关问题