如何从Python的datetime对象中提取年份?

170 投票
5 回答
500568 浏览
提问于 2025-04-15 12:55

我想用Python从当前日期中提取出年份。

在C#中,这样写:

 DateTime a = DateTime.Now() 
 a.Year

在Python中需要怎么做呢?

5 个回答

21

其他人对这个问题的回答都很到位。那么,如果没有Stack Overflow,你该怎么自己找出答案呢?可以试试IPython,这是一个互动式的Python环境,支持按键自动补全。

> ipython
import Python 2.5 (r25:51908, Nov  6 2007, 16:54:01)
Type "copyright", "credits" or "license" for more information.

IPython 0.8.2.svn.r2750 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object'. ?object also works, ?? prints more.

In [1]: import datetime
In [2]: now=datetime.datetime.now()
In [3]: now.

多按几次Tab键,你会看到“now”这个对象的成员列表:

now.__add__           now.__gt__            now.__radd__          now.__sub__           now.fromordinal       now.microsecond       now.second            now.toordinal         now.weekday
now.__class__         now.__hash__          now.__reduce__        now.astimezone        now.fromtimestamp     now.min               now.strftime          now.tzinfo            now.year
now.__delattr__       now.__init__          now.__reduce_ex__     now.combine           now.hour              now.minute            now.strptime          now.tzname
now.__doc__           now.__le__            now.__repr__          now.ctime             now.isocalendar       now.month             now.time              now.utcfromtimestamp
now.__eq__            now.__lt__            now.__rsub__          now.date              now.isoformat         now.now               now.timetuple         now.utcnow
now.__ge__            now.__ne__            now.__setattr__       now.day               now.isoweekday        now.replace           now.timetz            now.utcoffset
now.__getattribute__  now.__new__           now.__str__           now.dst               now.max               now.resolution        now.today             now.utctimetuple

你会发现now.year是“now”对象的一个成员。

36
import datetime
a = datetime.datetime.today().year

或者甚至(正如Lennart建议的

a = datetime.datetime.now().year

或者甚至

a = datetime.date.today().year
246

其实在Python里也是差不多的.. :-)

import datetime
year = datetime.date.today().year

当然,日期本身并没有时间的部分,所以如果你也想要时间的话,可以用一个完整的日期时间对象来做同样的事情:

import datetime
year = datetime.datetime.today().year

(显然没有什么不同,但你可以先把datetime.datetime.today()存到一个变量里,然后再提取年份,当然可以这样做)。

需要注意的一点是,在某些Python版本中(我想是2.5.x系列),32位和64位的Python在时间的组成部分上可能会有所不同。所以在一些64位的平台上,你会看到小时/分钟/秒,而在32位的平台上,你会看到小时/分钟/秒(用英文写的)。

撰写回答