python - 字符串“3d02h”中的确切日期
问题描述
我正在从 SSH 连接输出中提取一个字符串,这给了我一个类似“3d02h”的字符串,我必须将此日期插入数据库。
输出来自在 cisco_switch 中执行的命令“show spanning-tree detail | inc ieee|occurr|from|is exec”,它给了我以下输出:
VLAN0001 正在执行 ieee 兼容的生成树协议 拓扑更改次数 490 上次更改发生在 3d02h 前,来自 GigabitEthernet1/0/11
所以我使用 .split() 函数从输出中提取“3d02h”。
现在我想将字符串转换为日期时间对象。
我尝试使用 datetime.strptime(string, "%d %H") 从字符串中提取日期和小时,但它不起作用。
解决方案
我已经用 re 和 parsedatetime 完成了。
from datetime import datetime
import parsedatetime as pdt
import re
cal = pdt.Calendar()
print(datetime.now())
date = "3d02h"
index = 2
date = re.findall(r'[A-Za-z]+|\d+', date)
date_len = int(len(date))
date_len = date_len // 2
for item in range(0, date_len):
date.insert(index, ' ago ')
index += 3
date = "".join(date)
print(date)
date, flags = cal.parseDT(date)
assert flags
print(date)
输出是:
2019-09-05 13:37:28.710065
3d ago 02h ago
2019-09-02 11:37:28
推荐阅读
- reactjs - 如何使用 react 和 typescript 为用户登录和处理提供一种安全的方式?
- javascript - Plotly 图形中的 CSS 缩放和鼠标坐标
- java - 如何从 Java 的 try/catch 块中抛出异常的点恢复执行?
- javascript - 根据 codeigniter 中第一个 selectpicker 的用户输入动态加载第二个 bootstrap selectpicker
- c# - .net 5 在 Visual Studio 16.8 中不可用作目标框架
- reactjs - 反应如何使 onClick 不仅仅适用于某些元素
- avro - Spring Boot:如何在 spring-kafka 中惯用地配置 Schema Registry Serdes
- latex - 为什么一个人需要编译两次才能在pdf中有一个目录?
- csh - if 语句 CSH 中未修改变量
- php - Foreach 数组返回最后一个值