0

是否可以获取一串日期,例如2013-02-26 10:45:54,082并从 "epoch" 获取以毫秒为单位的时间?或类似的东西?

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

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

谢谢

4

1 回答 1

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”。我还允许使用.而不是,作为毫秒分隔符,因为您获得的时间取决于创建时间的语言环境首先是字符串。)

于 2013-03-18T01:21:03.833 回答