Время ISO (ISO 8601) в Python - PullRequest
       54

Время ISO (ISO 8601) в Python

220 голосов
/ 28 января 2010

У меня есть файл. В Python я хотел бы взять время его создания и преобразовать его в ISO time (ISO 8601) строку , сохранив тот факт, что он был создан в Восточном часовом поясе (ET) .

Как мне взять ctime файла и преобразовать его в строку времени ISO, которая указывает восточный часовой пояс (и учитывает летнее время, если необходимо)?

Ответы [ 11 ]

0 голосов
/ 29 августа 2012
import datetime, time    
def convert_enddate_to_seconds(self, ts):
    """Takes ISO 8601 format(string) and converts into epoch time."""
     dt = datetime.datetime.strptime(ts[:-7],'%Y-%m-%dT%H:%M:%S.%f')+\
                datetime.timedelta(hours=int(ts[-5:-3]),
                minutes=int(ts[-2:]))*int(ts[-6:-5]+'1')
    seconds = time.mktime(dt.timetuple()) + dt.microsecond/1000000.0
    return seconds 

>>> import datetime, time
>>> ts = '2012-09-30T15:31:50.262-08:00'
>>> dt = datetime.datetime.strptime(ts[:-7],'%Y-%m-%dT%H:%M:%S.%f')+ datetime.timedelta(hours=int(ts[-5:-3]), minutes=int(ts[-2:]))*int(ts[-6:-5]+'1')
>>> seconds = time.mktime(dt.timetuple()) + dt.microsecond/1000000.0
>>> seconds
1348990310.26
...