我想按顺序将22-Jul-2020 14:00 (GMT 4.30)
转换为22 7 2020
将其插入我的数据库。
非常感谢您的帮助。
答案 0 :(得分:3)
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快乐!!