изменить формат даты с часовым поясом на гггг-мм-дд чч: мм: сс - PullRequest
1 голос
/ 10 января 2020

Я знаком с strftime, однако они требуют, чтобы дата была в формате datetime. В моем случае я получаю данные, которые выглядят как 01/Oct/2019:07:34:34 +0900. Я хотел бы преобразовать его в 2019-10-01 07:34:34.

ПРИМЕЧАНИЕ: моя дата в типе объекта.

Я прочитал формат даты с часовым поясом и https://www.guru99.com/date-time-and-datetime-classes-in-python.html однако они оба предполагают, что у меня есть формат даты и времени, который выглядит как datetime (2019, 10, 1, 07, 34, 34)

благодаря названию месяца на номер месяца и наоборот в python.

Я создал функцию, которая изменяет формат

import calendar
month_dict = dict((v,k) for k,v in enumerate(calendar.month_abbr))

def date_formatter(date):
    day, month, year_and_time = date.split()[0].split('/')
    year, hour, minute, second = year_and_time.split(":")

    month = month_dict[month]

    return f'{year}-{month}-{day} {hour}:{minute}:{second}'

, тогда, так как я работаю с фреймом данных, используйте apply + Лямбда для применения ко всем строкам.

df['new_date'] = df['date'].apply(lambda row: date_formatter(row))

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

Ответы [ 2 ]

2 голосов
/ 10 января 2020

Если указанная вами дата является строкой, используйте

from datetime import datetime

myDate = '01/Oct/2019:07:34:34 +0900'

dt = datetime.strptime(myDate, '%d/%b/%Y:%H:%M:%S %z')
dt_to_string = dt.strftime('%Y-%m-%d %H:%M:%S')
print(dt_to_string)

2019-10-01 07:34:34

Theres это для будущего использования: https://strftime.org/

РЕДАКТИРОВАТЬ: увидел, что вы были в фрейм данных, используйте

df['Datetime'] = pd.to_datetime(df['DateTimeColumn'], format='%d/%b/%Y:%H:%M:%S %z')
0 голосов
/ 10 января 2020
from datetime import datetime

old_date = "01/Oct/2019:07:34:34 +0900"
new_date = datetime.strptime(date, "%d/%b/%Y:%X %z").strftime("%Y-%m-%d %X")

print(new_date)

2019-10-01 07: 34: 34

Проверьте эту классную страницу: https://strftime.org/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...