使用python从未知日期格式中获取年份

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用python从未知日期格式中获取年份相关的知识,希望对你有一定的参考价值。

因此,我正在查询服务器以获取特定数据,我需要从返回的日期字段中提取年份,但是例如,日期字段会有所不同:

2009
2009-10-8
2009-10
2017-10-22
2017-10

显而易见的是将日期提取到数组中并获取最大值:(但有问题)

year = max(d.split('-'))

由于某种原因,这会带来误报,因为22似乎是2017年的最高标准,如果将来对服务器的调用导致日期存储为“ 2019/10/20”,也会带来问题。

答案

问题在于,虽然2017 > 22'2017' < '22',因为它是字符串比较。您可以这样做来解决此问题:

year = max(map(int, d.split('-')))

但是,如果您不介意Long Now Foundation,请考虑使用正则表达式提取任何4位数字:

match = re.search(r'\b\d4\b', d)
if match:
    year = int(match.group(0))

以上是关于使用python从未知日期格式中获取年份的主要内容,如果未能解决你的问题,请参考以下文章

如何解析日期以获取 Python 中的年份 [重复]

python - 如何将带有年份的周数转换为python pandas中的日期时间格式?

日期格式和提取日期值

Js获取当前日期时间及Js日期格式化

python日期格式化符号

从十进制 (8, 0) 格式的日期获取 n-3 或 n-x 个月(约 90 天前),在 SQL Server 和 DB2 中具有年份变化影响