给定一个包含日期时间格式的字符串,我想告诉用户它是否可以按字符串排序。
例如:
'%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/