python - 如何检查字符串日期格式是否可排序?
问题描述
给定一个包含日期时间格式的字符串,我想告诉用户它是否可以按字符串排序。
例如:
'%Y-%m-%d %H:%M:%S'
是可排序的'%m-%d %H:%M'
是可排序的'%d-%m %H:%M'
不是(如果我们按字符串排序,28-05 将出现在 29-04 之前)
我的方法是解析字符串并检查我们是否遵循以下顺序:
- Y 之前 m 之前 d
- H 之前 M 之前 S
这种方法很乏味,有没有一种简单有效的方法来完成这个?
解决方案
关键是只选择存在的标记,然后查看它们的顺序是否正确:
def is_sortable(format_string):
markers = ['%Y', '%m', '%d', '%H', '%M', '%s']
indices = [format_string.index(marker) for marker in markers if marker in format_string]
return indices == sorted(indices)
如果索引的顺序不正确,则字符串不可排序。
is_sortable('%Y-%m-%d %H:%M:%S')
True
is_sortable('%d-%m')
False
干杯
推荐阅读
- sparql - 如何在 SPARQL 查询中过滤个人
- r - 如何将本地机器上 R 中的内部包/定制包移动到 R Studio Server Pro
- c# - 发布后模型在控制器中接收为空
- python-3.x - 无法从通过 Cron 运行的 python 脚本执行 url - Raspberry Pi
- python - TensorFlow 2.0 C++ - 加载预训练模型
- .net - Azure 应用服务 - Application Insights 性能
- c# - Xamarin.Forms:谷歌的 Firebase 身份验证
- javascript - 使用 iframe 时强制移动视图
- python - 将 Pandas 时间戳转换为序列号
- angular - 我在运行 npm start cmd 时遇到问题