繁体   English   中英

(Python) 将日期格式从 yyyy-mm-dd 更改为 yyyy/mm/dd

[英](Python) changing date format from from yyyy-mm-dd to yyyy/mm/dd

我正在尝试从字符串中提取日期并将日期格式从 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)

(pic) 代码和错误类型

您当前的语法无效,因为您将调用re.match作为文字字符串传递。 相反,尝试仅通过带有回调 function 的正则表达式替换对日期部分进行替换:

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)

首先,您必须将字符串转换为日期时间 object,然后才能转换日期时间。

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"))

或者如果不需要日期时间 object ,则可以使用替换:

str = "2017/09/15 07:11:00"
str = str.replace("/", "-")
print(str)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM