Python:如何在不知道格式的情况下将字符串转换为日期时间?

Deb*_*nha 9 python time

我有一个以字符串形式出现并代表时间的字段.有时它在12小时内,有时在24小时内.可能的值:

  1. 8:26
  2. 上午8时26
  3. 13:27

是否有一个函数可以通过聪明的方式将这些转换为时间格式?选项1没有因为它是24小时格式,而选项2前面有0而选项3显然是24小时格式.Python/lib中是否有一个函数可以:

time = func(str_time)
Run Code Online (Sandbox Code Playgroud)

Mar*_*ler 18

超短的回答:

from dateutil import parser
parser.parse("8:36pm")
>>>datetime.datetime(2015, 6, 26, 20, 36)
parser.parse("18:36")
>>>datetime.datetime(2015, 6, 26, 18, 36)
Run Code Online (Sandbox Code Playgroud)

Dateutil应该可用于你的python安装; 不需要大熊猫这样的东西

如果要从datetime对象中提取时间:

t = parser.parse("18:36").time()
Run Code Online (Sandbox Code Playgroud)

这将给你一个time对象(如果这对你更有帮助).或者您可以提取单个字段:

dt = parser.parse("18:36")
hours = dt.hour
minute = dt.minute
Run Code Online (Sandbox Code Playgroud)


sac*_*ena 10

熊猫中有一个这样的功能

import pandas as pd
d = pd.to_datetime('<date_string>')
Run Code Online (Sandbox Code Playgroud)