Дополнительно
Преобразование строки временной метки unix в читаемую дату
У меня есть строка, представляющая временную метку unix (например, "1284101485") в Python, и я'хочу преобразовать ее в читаемую дату. Когда я использую time.strftime
, я получаю TypeError
:
>>>import time
>>>print time.strftime("%B %d %Y", "1284101485")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: argument must be 9-item sequence, not str
751
14
Используйте модуль
datetime
:Взято с сайта http://seehuhn.de/pages/pdate
Наиболее проголосовавший ответ предполагает использование fromtimestamp, который подвержен ошибкам, поскольку использует локальный часовой пояс. Чтобы избежать проблем, лучше использовать UTC:
Где posix_time - это эпоха Posix, которую вы хотите преобразовать
Есть две части:
Портативный способ получить работающее локальное время, даже если в прошлом локальный часовой пояс имел другое смещение utc, а python не имел доступа к базе данных tz, - использовать часовой пояс
pytz
:Чтобы отобразить его, вы можете использовать любой формат времени, который поддерживается вашей системой, например,.:
Если вам не нужно местное время, вместо этого вы получите читаемое время UTC:
Если вас не волнуют проблемы с часовым поясом, которые могут повлиять на какую дату возвращают или если у python есть доступ к базе данных tz в вашей системе:
На Python 3 вы можете получить данные времени с учетом часового пояса, используя только stdlib (смещение UTC может быть неправильным, если python не имеет доступа к базе данных tz в вашей системе, например,., в Windows):
Функции модуля
time
представляют собой тонкие оболочки вокруг соответствующего C API, и поэтому они могут быть менее переносимыми, чем соответствующие методыdatetime
, иначе вы могли бы их использовать:Для удобочитаемой метки времени из метки времени UNIX я использовал это в скриптах раньше:
Вывод:
«26 декабря 2012 года»
Вы можете преобразовать текущее время, как это
Преобразовать дату в строке в разные форматы.
Помимо использования пакета time / datetime , pandas также можно использовать для решения той же проблемы. Вот как мы можем использовать pandas для преобразования отметки времени в читаемую дату :
Временные метки могут быть в двух форматах:
13 цифр (миллисекунды) - Чтобы преобразовать миллисекунд в дату, используйте:
10 цифр (секунд) - Чтобы преобразовать секунд в дату, используйте:
& Лт;!- начать фрагмент: js hide: ложная консоль: истинная павиана: false - >
& Лт;!- конец фрагмента - >
Получите читаемую дату из отметки времени также со временем, также вы можете изменить формат даты.
Еще один способ сделать это с помощью функции gmtime и форматирования ;
Выход:
2018-10-4 11:57:44
я просто успешно использовал:
Вы можете использовать easy_date, чтобы упростить:
быстрый и грязный один лайнер:
'2013-5-5-1-9-43'