HOWTO · Python

在 Python 中获取当前年份

了解如何使用 Python 中的多种简单方法获取当前年份

本页内容

使用 Python 标准库中的 datetime 模块获取当前年份。需要年份字符串时,调用 datetime.datetime.now(),并使用 strftime("%Y") 格式化日期;需要整数时,则调用 datetime.date.today() 并读取其 year 属性。这两种方法都使用运行程序的机器所能获取的日期,因此当机器日期跨入新的一年时,返回的年份也会随之改变。

使用 strftime() 获取当前年份

strftime() 方法会将日期或时间格式化为字符串。%Y 指令会将年份格式化为四位数字字符串,适合用于显示,或与其他格式化后的日期部分组合。下面的示例会获取当前日期并打印年份:

运行此示例:

示例会打印当前年份;由于代码块与输出保持和英文原文完全一致,输出标签 Current year: 仍为英文。

import datetime

current_date = datetime.datetime.now().date()
current_year = current_date.strftime("%Y")
print(f"Current year: {current_year}")
Current year: 2026

这里,datetime.datetime.now() 会提供当前本地日期和时间,.date() 则保留其中的日期部分。对该日期调用 strftime("%Y") 会返回字符串,而不是数字。例如,如果运行时的当前年份是 2026,current_year 的值就是字符串 "2026"。显示的年份取决于运行时的时钟;不要把示例值当作今后几年仍然有效的当前年份。

你还可以使用其他格式指令来包含更多日期信息。例如,%A %Y 会将星期名称和年份组合起来格式化。具体的星期取决于所格式化的日期。完整的指令列表及其平台说明,请参阅 Python 关于 strftime() 和 strptime() 格式代码的文档。

使用 year 属性获取当前年份

如果使用数字年份更方便,可以获取 datetime.date 对象并读取其 year 属性。datetime.date.today() 会直接返回今天的日期,因此这种方法无需先创建 datetime.datetime 值,再将其转换为日期。

运行此示例:

示例会打印当前年份;由于代码块与输出保持和英文原文完全一致,输出标签 Current year: 仍为英文。

import datetime

current_date = datetime.date.today()
current_year = current_date.year
print(f"Current year: {current_year}")
Current year: 2026

这里的 current_year 是整数,与 strftime("%Y") 返回的字符串不同。整数适合用于算术运算或比较;要用于显示或与其他字符串组合时,再将其转换为文本。datetime.datetime.now().date() 和 datetime.date.today() 都会生成日期对象,其 year 属性可读取为 date.year;请选择最适合现有日期值的表达式。例如,如果代码中已经有一个日期对象,直接读取该对象的属性即可,无需再次获取今天的日期。该属性表示这个日期对象所对应的年份;如果对象表示过去或未来的日期,其年份可能与当前年份不同。

这些示例使用机器的本地日期。如果应用需要特定时区中的年份,请从带时区信息的 datetime 开始,使用 astimezone() 将其转换到该时区,然后读取或格式化转换后的 datetime 的年份。临近新年时,这种转换尤其重要:同一时刻在不同时区可能对应不同的日历日期,因而也可能属于不同的年份。普通的 date 不包含时区信息,所以应先确定时区,再从某个时刻推导日期。