问题描述
简而言之,我需要对 Python f-string
的操作进行逆向操作。
使用此格式化程序,您可以在 Python 中轻松地从包含日期的变量构建任意字符串。例如:
f"{day}-{mon}-{year} \n {hour}:{minute}some silly\n text here_{seconds}"
其中 year
等是代表您期望的整数。
现在,我需要一个能够执行反向操作的函数,即给定一个以有趣(但已知)方式格式化的字符串,检索基础日期变量。像这样:
def retrieve_date(str_date,str_format):
# str_date is 27-03-2021 \n 04:11:some silly\n text here_34"
# str_format is something like "{day}-{mon}-{year} \n {hour}:{minute}some silly\n text here_{seconds}"
# some logic
# return the 6 integers that make up the time stamp
return year,month,day,hour,minute,second
这如何在 Python 中完成?
解决方法
如评论中所述,您可以使用 datetime.strptime。 p 代表“解析”,还有 strftime
可用于将日期格式化为特定字符串。
from datetime import datetime
str_date = "27-03-2021 \n 04:11:some silly\n text here_34"
str_format = "%d-%m-%Y \n %H:%M:some silly\n text here_%S"
def retrieve_date(str_date,str_format):
d = datetime.strptime(str_date,str_format)
return d.year,d.month,d.day,d.hour,d.minute,d.second
print(retrieve_date(str_date,str_format))
(2021,3,27,4,11,34)