写一个函数,判断一串字符串是否符合ISO 8601的时间和日期的组合拓展格式表示法,不考虑时区,年限制在1970-9999,比如,正确格式为2025-02-21T18:45:20。如果不符合则抛出异常
时间: 2024-10-20 18:14:28 浏览: 39
日期向量/数字到 ISO 8601 日期字符串:将日期向量/数字转换为 ISO 8601 日期字符串。 令牌控制日期/时间表示法。-matlab开发
5星 · 资源好评率100%
当然可以。这里是一个简单的Python函数示例,它使用正则表达式来检查输入的字符串是否符合ISO 8601的日期时间格式:
```python
import re
def is_iso_8601(date_string):
# 正则表达式匹配ISO 8601格式(YYYY-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$'
# 如果字符串不符合模式,则抛出ValueError异常
if not re.match(pattern, date_string):
raise ValueError(f"'{date_string}' 不符合 ISO 8601 格式")
# 检查年份是否在范围内 (1970-9999)
year = int(date_string.split('-')[0])
if year < 1970 or year > 9999:
raise ValueError("年份超出范围 (1970-9999)")
return True
# 使用示例
try:
is_iso_8601('2025-02-21T18:45:20')
print("字符串符合ISO 8601格式")
except ValueError as e:
print(e)
阅读全文