Как я могу преобразовать время в строке datetime с 24:00 до 00:00 в Python? - PullRequest
9 голосов
/ 16 августа 2010

У меня есть много строк дат, таких как Mon, 16 Aug 2010 24:00:00, и некоторые из них имеют формат 00-23 час, а некоторые - 01-24 час. Я хочу получить список объектов даты из них, но когда я пытаюсь преобразовать пример строки в объект даты, я должен преобразовать ее из Mon, 16 Aug 2010 24:00:00 в Tue, 17 Aug 2010 00:00:00. Какой самый простой способ?

1 Ответ

9 голосов
/ 16 августа 2010
import email.utils as eutils
import time
import datetime

ntuple=eutils.parsedate('Mon, 16 Aug 2010 24:00:00')
print(ntuple)
# (2010, 8, 16, 24, 0, 0, 0, 1, -1)
timestamp=time.mktime(ntuple)
print(timestamp)
# 1282017600.0
date=datetime.datetime.fromtimestamp(timestamp)
print(date)
# 2010-08-17 00:00:00
print(date.strftime('%a, %d %b %Y %H:%M:%S'))
# Tue, 17 Aug 2010 00:00:00

Поскольку вы говорите, что их нужно исправить, вы должны определить функцию:

def standardize_date(date_str):
    ntuple=eutils.parsedate(date_str)
    timestamp=time.mktime(ntuple)
    date=datetime.datetime.fromtimestamp(timestamp)
    return date.strftime('%a, %d %b %Y %H:%M:%S')

print(standardize_date('Mon, 16 Aug 2010 24:00:00'))
# Tue, 17 Aug 2010 00:00:00
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...