【发布时间】:2020-07-15 04:26:12
【问题描述】:
我想按顺序将22-Jul-2020 14:00 (GMT 4.30) 转换为22 7 2020
将其插入到我的数据库中。
非常感谢您的帮助。
【问题讨论】:
标签: python python-3.x date-format
我想按顺序将22-Jul-2020 14:00 (GMT 4.30) 转换为22 7 2020
将其插入到我的数据库中。
非常感谢您的帮助。
【问题讨论】:
标签: python python-3.x date-format
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)
【讨论】:
strftime() 和strptime() 方法将您的日期时间对象格式化为适当的格式。
如果你只想保留字符串中的日期部分,你可以使用这个:
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 返回一个零填充月份,这对于您的情况来说不是必需的。
参考:
【讨论】:
您可以使用正则表达式来完成,但我想在这种情况下使用replace() 方法,它将替换为以下内容:
date = "22-Jul-2020 14:00"
newDate = date.replace("-", " ")[:11]
print(newDate)
输出:
22 Jul 2020
了解更多关于Replace()
Codin 快乐!
【讨论】: