2013-03-17 2 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 ". Я также разрешил использовать . вместо , в качестве ми llisecond separator, который вы получите, зависит от локали, которая вначале создала временную строку.)

+0

Как-то это не работает для опции сканирования часов '-format': ** плохой переключатель« -формат »: должен быть -base или -gmt при выполнении «clock scan $ datepart -format»% Y-% m-% d% H:% M:% S "-gmt 1" ** , но он отлично работает без него – hudac

Смежные вопросы