【问题标题】:Datetime object日期时间对象
【发布时间】:2014-05-26 01:12:45
【问题描述】:

如何从 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) 中获取年、月、日。我想我可以使用正则表达式,但必须有更好的方法来做到这一点。

【问题讨论】:

    标签: python python-2.7 data-objects pywhois


    【解决方案1】:

    这是一个列表对象,其中包含 one datetime object,外加一个 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
    

    【讨论】:

      【解决方案2】:

      日期时间对象具有month、year 和day 属性。

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

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

      import calendar
      calendar.month_name[datetime.datetime.now().month]  # Output "April"
      

      【讨论】:

      • 这有助于确定域名是否过期。
      【解决方案3】:

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

      >>> 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。

      【讨论】:

        【解决方案4】:

        对于现在正在寻找这个的任何人,这里是 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
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-04-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-07-23
          • 2014-08-06
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多