2014-02-10 3 views
1

ALL,Преобразование метки времени с миллисекундах DateTime в питона

Я пытаюсь, чтобы получить статистические данные файла. Это дает мне следующее:

atime - datetime timestamp representation 
atime_nano - nano-seconds resolution in addition to a_time. 

То, что я хотел бы сделать, это преобразовать atime.atime_nano переменной даты и времени в Python.

Так что, если у меня есть:

atime = 1092847621L 
atime_nano = 7100000L 

Я хотел бы, чтобы преобразовать его в объект даты и времени в питона, который будет иметь правильную дату с миллисекундах.

Как я могу это сделать?

спасибо.

+0

чем проблема? 'datetime' должен иметь возможность обрабатывать миллисекунды просто отлично. – msvalkon

+0

@msvalkon, проблема в правильном синтаксисе. Будет ли datetime.datetime.fromtimestamp (atime.atime_nano) работать? Спасибо. – Igor

+0

Нет, не будет. Прежде всего, наносекунды и миллисекунды - это не одно и то же. Во-вторых, вы должны использовать переменные 'long', вы не можете сказать' atime.atime_nano'. – msvalkon

ответ

0

DateTimes может иметь микросекунд (1 мкс = 1000 наносекунд) Вы можете сделать следующее для примера:

dt = datetime.fromtimestamp(1092847621L).replace(microsecond = 7100000L/1000) 
+1

'fromtimestamp()' пытается вернуть наивный объект datetime в локальный часовой пояс. В некоторых случаях результат может быть неоднозначным и неправильным. Вместо этого используйте часовой пояс UTC: 'datetime.utcfromtimestamp (1092847621L) .replace (microsecond = int (7100000L * 1e-3 + .5))' – jfs

+0

Это очень хорошее наблюдение. – grasshopper

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