在python中的日期转换

时间:2018-06-11 14:06:10

标签: python date strptime strftime python-dateutil

我有三种独特的日期格式,如下所示

date1 = "2018-05-31 14:34:42+00:00"
date2 = "2018-05-21T14:49:52.833"
date3 = "2018-06-01 00:00:00"

如何使用python将这三个日期转换为单日期格式("%Y-%m-%d %H:%M:%S")?

尝试了下面的代码,但我得到的是ValueErrorTypeError

from dateutil.parser import parse
def parse_date(request_date):
    request_date = parse(request_date)
    parsed_date = request_date.strftime("%Y-%m-%d %H:%M:%S")
    return parsed_date

3 个答案:

答案 0 :(得分:0)

必定会出现其他问题,您必须详细说明您的代码/例外情况。

>>> from dateutil.parser import parse
>>> date1 = "2018-05-31 14:34:42+00:00"
>>> date2 = "2018-05-21T14:49:52.833"
>>> date3 = "2018-06-01 00:00:00"
>>> print( parse(date1).strftime("%Y-%m-%d %H:%M:%S"))
2018-05-31 14:34:42
>>> print( parse(date2).strftime("%Y-%m-%d %H:%M:%S"))
2018-05-21 14:49:52
>>> print( parse(date3).strftime("%Y-%m-%d %H:%M:%S"))
2018-06-01 00:00:00

答案 1 :(得分:0)

你在哪里得到一个例外,因为我已经尝试了这个并且它有效:

date1 = "2018-05-31 14:34:42+00:00"
date2 = "2018-05-21T14:49:52.833"
date3 = "2018-06-01 00:00:00"

requestedDates = date1,date2,date3

from dateutil.parser import parse
def parse_date(request_date):
    request_date = parse(request_date)
    parsed_date = request_date.strftime("%Y-%m-%d %H:%M:%S")
    return parsed_date


for i in requestedDates:
    print(parse_date(i))

Output:
2018-05-31 14:34:42
2018-05-21 14:49:52
2018-06-01 00:00:00

我用作日期的字符串是字符串,您确定您为该函数提供的值是字符串吗? (您可以检查它们是否属于类型(date1)函数)

答案 2 :(得分:-1)

尝试这个怎么样

from datetime import datetime as dt
>>> date_str='12/20/2014 15:25:05 pm'

>>> date_obj = dt.strptime(date_str, '%m/%d/%Y %H:%M:%S %p')

>>> dt.strftime(date_obj, '%m/%d/%Y %I:%M:%S %p')
'12/20/2014 03:25:05 PM'