如何在 python 中转换 '22-Jul-2020 14:00 (GMT 4.30) '“22 7 2020”
how to convert '22-Jul-2020 14:00 (GMT 4.30) ' "22 7 2020 " in python
我想按顺序将 22-Jul-2020 14:00 (GMT 4.30)
转换为 22 7 2020
将其插入我的数据库。
非常感谢您的帮助。
你可以使用正则表达式来完成,但我想在这种情况下使用 replace()
方法,它会将一些东西替换成如下的东西:
date = "22-Jul-2020 14:00"
newDate = date.replace("-", " ")[:11]
print(newDate)
输出:
22 Jul 2020
详细了解 Replace()
科丁快乐!
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)
Returns
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'', 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)
如果只想保留字符串中的日期部分,可以使用:
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
returns 一个零填充月份,您的情况不需要。
参考:
- strftime and strptime format codes
- Whosebug answer to convert datetime to a formatted string
我想按顺序将 22-Jul-2020 14:00 (GMT 4.30)
转换为 22 7 2020
将其插入我的数据库。
非常感谢您的帮助。
你可以使用正则表达式来完成,但我想在这种情况下使用 replace()
方法,它会将一些东西替换成如下的东西:
date = "22-Jul-2020 14:00"
newDate = date.replace("-", " ")[:11]
print(newDate)
输出:
22 Jul 2020
详细了解 Replace()
科丁快乐!
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)
Returns
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'', 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)
如果只想保留字符串中的日期部分,可以使用:
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
returns 一个零填充月份,您的情况不需要。
参考:
- strftime and strptime format codes
- Whosebug answer to convert datetime to a formatted string