如何在python中转换'22 -Jul-2020 14:00(GMT 4.30)'“ 22 7 2020”

时间:2020-07-15 04:26:12

标签: python python-3.x date-format

我想按顺序将22-Jul-2020 14:00 (GMT 4.30)转换为22 7 2020 将其插入我的数据库。

非常感谢您的帮助。

3 个答案:

答案 0 :(得分:3)

您要使用strftime() and strptime()

strptime用于将日期字符串更改为datetime格式。 strftime然后将其转换为另一个格式化的字符串,假定您要这样做。

from datetime import datetime

s = '22-Jul-2020 14:00 (GMT 4.30)'

dt = datetime.strptime(s, '%d-%b-%Y %H:%M (%Z 4.30)')

out = dt.strftime('%d %m %Y')

print(out)

返回

22 07 2020

一个问题是strptime将难以解决偏移量(GMT 4.30)的最后格式化方式。由于检索“ GMT”一词只是您所需要的时区,因此建议您使用regex剥离其余部分-如果时区对您而言很重要。

import re
from datetime import datetime

s = '22-Jul-2020 14:00 (GMT 4.30)'

s_stripped = re.sub('\(([A-Z]+).+\)', r'\1', s)
# s_stripped is '22-Jul-2020 14:00 GMT'

dt = datetime.strptime(s_stripped, '%d-%b-%Y %H:%M %Z')

out = dt.strftime('%d %m %Y')

print(out)

答案 1 :(得分:1)

如果只想保留字符串中的日期部分,则可以使用以下方法:

from datetime import datetime


s = "22-Jul-2020 14:00 (GMT 4.30)"
d = datetime.strptime(s.split()[0], "%d-%b-%Y")
desired_output = '{d.day} {d.month} {d.year}'.format(d=d)
print(desired_output)
x = datetime.strftime(d, "%d %m %Y")
print(x)

输出:

22 7 2020
22 07 2020

从字符串创建datetime对象之后,我已经展示了字符串格式和strftime来将datetime转换为所需格式。如您所见,strftime返回零填充月份,这对于您的情况不是必需的。

参考:

答案 2 :(得分:-3)

您可以使用Regex来完成操作,但是在这种情况下,我想使用replace()方法,它将用下面的方法替换内容:

date = "22-Jul-2020 14:00"
newDate = date.replace("-", " ")[:11]
print(newDate)

输出:

22 Jul 2020

详细了解Replace()

Codin快乐!!