python - Python 日期时间模式匹配
问题描述
我正在尝试根据不同格式的列表来确定是否可以将字符串转换为日期。因此,必须循环整个列表。如果找到匹配项,则应返回该匹配项。如果所有尝试都返回错误,则应返回该错误。我不太确定如何做到这一点,我的方法可以在下面看到。
_DEFAULT_PATTERNS = ["%d.%m.%Y", "%y-%m-%d"]
try:
if format == 'default':
for p in _DEFAULT_PATTERNS:
try:
value = datetime.strptime(value, p).date()
except:
continue
except Exception:
return ERROR
return value
解决方案
尝试这样的事情:
from datetime import datetime
_DEFAULT_PATTERNS = ["%d.%m.%Y", "%y-%m-%d"]
def is_castable_to_date(value):
for p in _DEFAULT_PATTERNS:
try:
value = datetime.strptime(value, p).date()
return True
except:
pass
return False
print is_castable_to_date("12-12-12")
print is_castable_to_date("12.12.12")
print is_castable_to_date("12/12/12")
推荐阅读
- ios - IQKeyboardManager:在键盘上方保留多个字段
- asp.net-core - 将缓存添加到 ASP.NET Core 响应
- python - 如何为python中数据框中的特定列创建掩码?
- api - SAP SuccessFactors oData API。未找到 FO 部门实体
- tableau-api - 如何查找 HiveServer2 的连接详细信息以进行 Tableau 可视化
- arrays - postgresql中的对象数组
- angular - Angular PrimeIcons 在本地工作,但不在 IIS 上
- python - 如何使用 pandas.read_csv 读取字段
- c# - 使用 Firebase 存储脱机时如何捕获和处理 GetBytesAsync 错误?
- node.js - 从 iOS 应用程序调用时,Firebase 函数返回空值