1

如何从 datetime.datetime 对象中获取年份和月份?这是我遇到问题的代码:

w = whois.whois('http://stackoverflow.com')
datatime = w.expiration_date
print datatime

打印的对象是:

[datetime.datetime(2015, 12, 26, 0, 0), u'2015-12-26T19:18:07-07:00']

如何从部分 datetime.datetime(2015, 12, 26, 0, 0) 中获取年、月和日。我想我可以使用正则表达式,但必须有更好的方法来做到这一点。

4

4 回答 4

2

它是一个包含一个 datetime对象的列表对象,外加一个 ISO 8601 字符串。只需在第一个对象上使用属性:

datatime[0].year
datatime[0].month
datatime[0].day

演示:

>>> datatime
[datetime.datetime(2015, 12, 26, 0, 0), u'2015-12-26T19:18:07-07:00']
>>> datatime[0]
datetime.datetime(2015, 12, 26, 0, 0)
>>> datatime[0].year
2015
>>> datatime[0].month
12
>>> datatime[0].day
26
于 2014-04-11T18:30:27.740 回答
1

Datetime 对象具有month,yearday属性。

 now = datetime.datetime.now()
 print(now.day)
 print(now.month)
 print(now.year)

您可以使用日历获取月份名称:

import calendar
calendar.month_name[datetime.datetime.now().month]  # Output "April"
于 2014-04-11T18:31:41.437 回答
1

以下是如何将这些字段分别作为整数获取:

>>> import datetime
>>> dt = datetime.datetime(2015, 12, 26, 0, 0)
>>> dt.year
2015
>>> dt.month
12
>>> dt.day
26

或者,如果您只想将这些字段格式化为字符串,您可以使用strftime()例如:

>>> dt.strftime('%Y-%m-%d')
'2015-12-26'

在这种情况下,您的对象看起来datatime实际上是一个双元素列表,日期时间对象作为第一个元素,字符串作为第二个元素。因此,要获取 datetime 对象,您只需在我的示例代码中使用datatime[0]dt即可。

于 2014-04-11T18:32:46.913 回答
0

对于现在正在寻找这个的任何人,这里是 Python 3.7.4 的更新答案以及时间信息:

>>> datatime
datetime.datetime(2020, 2, 2, 11, 59, 59)
>>> print(datatime)
2020-02-02 11:59:59
>>> datatime.year
2020
>>> datatime.month
2
>>> datatime.day
2
>>> datatime.hour
11
>>> datatime.minute
59
>>> datatime.second
59
>>> datatime.microsecond
0
于 2019-07-21T11:24:20.687 回答