[英]how to extract minutes and seconds from PT Format datetime using re in python
如何从时间格式PT34M23S
或PT32S
提取分钟和秒并将它们转换为总秒数?
import re
M= re.compile('[\d]+M')
S= re.compile('[\d]+S')
txt='PT32S'
m=re.compile('[\d]+')
s=re.compile('[\d]+')
if M.findall(txt)!=[]:
mins=M.findall(txt)
secs=S.findall(txt)
mm=m.findall(mins[0])
ss=s.findall(secs[0])
else:
ss=s.finall(S.findall(txt)[0])
以下是从这些日期格式中提取秒数的几个选项。
使用正则表达式:
import re
txt = "PT34M23S"
seconds = 0
try:
seconds += int(re.search(r"(\d+)S$", txt).group(1))
seconds += int(re.search(r"(\d+)M", txt).group(1)) * 60
except AttributeError:
pass
print(seconds) # => 2063
使用日期时间库:
from datetime import datetime
txt = "PT34M23S"
dt = 0
try:
dt = datetime.strptime(txt, "PT%MM%SS")
except ValueError:
dt = datetime.strptime(txt, "PT%SS")
seconds = (dt - datetime.strptime("0", "%S")).total_seconds()
print(seconds) # => 2063.0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.