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

时间:2015-06-26 06:55:28

标签: python time

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

  1. 8:26
  2. 上午08点26分
  3. 13时27
  4. 是否有一个功能可以通过智能将它们转换为时间格式?选项1没有,因为它是24小时格式,而选项2前面有0,选项3显然是24小时格式。 Python / lib中是否有一个函数可以执行:

    time = func(str_time)
    

2 个答案:

答案 0 :(得分:16)

超短答案:

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)

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

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

t = parser.parse("18:36").time()

会给你一个time对象(如果对你有更多的帮助)。 或者您可以提取单个字段:

dt = parser.parse("18:36")
hours = dt.hour
minute = dt.minute

答案 1 :(得分:2)

pandas中有一个这样的功能

import pandas as pd
d = pd.to_datetime('<date_string>')