python - 如何在 Python 中从当年打印明年

标签 python datetime

如果当前年份是在 python 中使用最简单的代码给出的,我如何打印下一年,可能在一行中使用 datetime 模块。

最佳答案

日期和日期时间对象都有一个 year 属性,它是一个数字。只需添加 1:

>>> from datetime import date
>>> print date.today().year + 1
2013

如果变量中有当前年份,直接加1即可,不用纠结datetime模块:

>>> year = 2012
>>> print year + 1
2013

如果你有一个字符串中的日期,只需选择代表年份的 4 位数字并将其传递给 int:

>>> date = '2012-06-26'
>>> print int(date[:4]) + 1
2013

年份算术非常简单,将其设为整数并加 1。没有比这更简单的了。

但是,如果您使用的是整个日期,并且您需要相同的日期但一年后,请使用组件创建一个新的 date 对象,其中年份增加一:

>>> today = date.today()
>>> print date(today.year + 1, today.month, today.day)
2013-06-26

或者您可以使用 .replace 函数,该函数返回您指定的字段已更改的副本:

>>> print today.replace(year=today.year + 1)
2013-06-26

请注意,当 today 是闰年的 2 月 29 日时,这可能会有点棘手。因此,绝对的、故障安全的正确方法是:

def nextyear(dt):
   try:
       return dt.replace(year=dt.year+1)
   except ValueError:
       # February 29th in a leap year
       # Add 365 days instead to arrive at March 1st
       return dt + timedelta(days=365)

关于python - 如何在 Python 中从当年打印明年,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11206489/

相关文章:

php - 转换日期/时间戳格式 (PHP)

python - 插槽触发自己的信号

python - 正则表达式根据名称值对列表中的值模式提取名称

python - 如何仅在第一次通过时以 root 身份运行 Ansible?

python 在将参数传递给 init 时引用类变量

javascript - 如何独立于时区过滤日期?

python - Django SECRET_KEY 风险

java - SQlite 查询 DateTime 中的不同日期

asp.net - 英国格式的 .net 4.0 中的日期格式被破坏

c# - 计算两个日期之间的工作日数?