Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何编写从任意格式的字符串中检索日期的函数_Python_Formatting_Re_F String - Fatal编程技术网

Python 如何编写从任意格式的字符串中检索日期的函数

Python 如何编写从任意格式的字符串中检索日期的函数,python,formatting,re,f-string,Python,Formatting,Re,F String,简而言之,我需要反转Python的操作f-string 使用此格式化程序,在Python中,您可以轻松地从包含日期的变量构建任意字符串。例如: f"{day}-{mon}-{year} \n {hour}:{minute}some silly\n text here_{seconds}" 其中,year等是表示期望值的整数 现在,我需要一个能够执行反向操作的函数,即给定一个以有趣(但已知)方式格式化的字符串,检索基础日期变量。大概是这样的: def retrieve_d

简而言之,我需要反转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中实现这一点?

如注释中所述,您可以使用。p代表“parse”,还有
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)

请阅读以下内容:。“解析模块与format()”相反。如果您只处理日期/时间,则应查看。