我正在尝试从字符串中提取日期,并将日期格式从yyyy-mm-dd更改为yyyy/mm/dd。不知怎么的,我弄错了。
我阅读了下面的链接来帮助我到达那里,但需要一个快速的手。
-
如何将日期字符串转换为不同格式的
-
正则表达式:匹配任何单词直到第一个空格
import re
import datetime
str = "2017/09/15 07:11:00"
x = re.match( r'([^s]+)',str)
new_x = datetime.datetime.strptime("re.match( r'([^s]+)',str)", "%Y/%m/%d").strftime("%Y-%m-%d")
print(x)
print(new_x)
(图片(用于代码和错误类型
您当前的语法无效,因为您将调用作为文本字符串传递给re.match
。相反,尝试只通过使用回调函数的regex替换来替换日期部分:
import re
import datetime
str = "2017/09/15 07:11:00"
output = re.sub(r'^(S+)', lambda m: datetime.datetime.strptime(m.group(1), "%Y/%m/%d").strftime("%Y-%m-%d"), str)
print(output) # 2017-09-15 07:11:00
我使用简单的字符串切片进行转换,如下所示:
import datetime
string = "2017/09/15 07:11:00"
string = string[0:10]
new_x = datetime.datetime.strptime(string, "%Y/%m/%d").strftime("%Y-%m-%d")
print(new_x)
首先,您必须将字符串转换为日期时间对象,然后才能转换日期时间。
import datetime
str = "2017/09/15 07:11:00"
converted_time = datetime.datetime.strptime(str, "%Y/%m/%d %H:%M:%S")
print(converted_time.strftime("%Y-%m-%d %H:%M:%S"))
或者,如果不需要datetime对象,则可以使用replace:
str = "2017/09/15 07:11:00"
str = str.replace("/", "-")
print(str)