python - 如何检查字符串日期格式是否可排序?

标签 python sorting datetime

给定一个包含日期时间格式的字符串,我想告诉用户它是否可以按字符串排序。

例如:

  • '%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

干杯

关于python - 如何检查字符串日期格式是否可排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65104279/

相关文章:

python和mysql在表中插入值

python - 如何在选择中正确使用超时参数?

C++排序数组函数

c# - 如何将秒显示为 0 的 DateTime 序列化?

python - Pandas 无法识别 csv 文件中的日期时间索引

python - 删除列表中满足条件的列表

python - 我需要在我的 `__init__.py` 文件中放置什么来简化这个包的界面?

linux - 使用 Unix 排序对多个键进行排序——错误?

c++ - 比较c++中的排序函数以进行索引排序

java - 查找与纽约午夜相对应的 UTC 日期