2013-07-02 4 views
1

Я пытаюсь преобразовать это 20130607T064835-0700 в представление времени unix. К сожалению, я не могу это сделать по какой-то причине. Мне удалось создать код, но он не работает.Значение смещения UTC Python

time.mktime(datetime.datetime.strptime('20130607T064835-0700', '%Y%m%dT%H%M%S%z').strftime("%s")) 

Похоже, что представление datetime% z в Python не работает.

>>> print time.strftime('%z') 
Central European Daylight Time 
>>> print time.strftime('%Z') 
Central European Daylight Time 

Я думаю, что% г должна возвращать смещение, как это сказано в документации:

%z UTC offset in the form +HHMM or -HHMM (empty string if the the object is naive). 

Что я делаю неправильно?

+0

Какая ОС? Я считаю, что функции времени используют базовые библиотеки C в вашей системе; в моей системе я получаю '-0400' и' EDT' для ваших примеров. – geoffspear

+0

Windows ... Вы правы, это системная проблема, я пытался это сделать в Linux, и она работает хорошо. Как я могу преобразовать это в Windows? – J33nn

ответ

0

Чтобы получить время UniX вашей метки времени под окнами вы можете сделать следующее (проверено на Python 2.7):

from dateutil.parser import parse 
from datetime import datetime 
import pytz 

t = parse('20130607T064835-0700') 
e = datetime(1970, 1, 1, 0, 0, tzinfo=pytz.utc) 
d = t - e 

unixtime = d.total_seconds() 
Смежные вопросы