【问题标题】:How to convert a date into a list in python [duplicate]如何在python中将日期转换为列表[重复]
【发布时间】:2020-06-25 18:29:14
【问题描述】:

我正在编写一个需要实时日期的程序(意思是当前日期)。这是代码。

from datetime import date
today_date = date.today()
print(list(today_date))

现在我想将此日期转换为列表。但这给了我一个错误,因为使用 date.today() 获得的元素不是“可迭代的”。那么如何将日期转换为列表呢?

【问题讨论】:

  • 你的预期输出是什么?
  • 就像把 2020-06-25 变成 2020 ,06 , 25

标签: python python-datetime


【解决方案1】:

也许您可以将.timetuple 用于您的目的:

>>> datetime.date.today().timetuple()[:3]
(2020, 6, 25)

【讨论】:

  • 如果不需要元组,您可以将其包装在 list
【解决方案2】:

日期和时间的每一部分都可用作日期时间对象的属性。你可以试试下面的方法。

import datetime

today_date = datetime.datetime.today()

date_list = [today_date.year, today_date.month, today_date.day]

你也可以类似地访问时间

【讨论】:

  • 这就是您要找的答案吗?
  • 是的,这就是答案
  • @snoopstick 我认为您还应该检查juanpa.arrivillaga's answer,它更pythonic且易于扩展。
【解决方案3】:

有一个方法叫timetuple

>>> from datetime import date
>>> today_date = date.today()
>>> today_date.timetuple()
time.struct_time(tm_year=2020, tm_mon=6, tm_mday=25, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=177, tm_isdst=-1)

如您所见,因为您使用的是date 而不是datetime,所以时间部分为零。

您可以将前三个项目转换为列表:

>>> list(today_date.timetuple()[:3])
[2020, 6, 25]

如果你使用datetime,那么它的使用方式相同,但时间部分也被填充:

>>> from datetime import datetime
>>> datetime.today().timetuple()
time.struct_time(tm_year=2020, tm_mon=6, tm_mday=25, tm_hour=19, tm_min=39, tm_sec=47, tm_wday=3, tm_yday=177, tm_isdst=-1)

所以你可以这样做,例如:

>>> list(datetime.today().timetuple()[:6])
[2020, 6, 25, 19, 40, 35]

【讨论】:

    【解决方案4】:

    您可以简单地将年、月和日作为元素添加到数组中。

    list = [today_date.year, today_date.month, today_date.day]
    

    【讨论】:

      【解决方案5】:
      from datetime import date
      today_date = date.today()
      print(str(today_date).split('-'))
      

      from datetime import datetime
      print(str(datetime.now()).split()[0].split('-'))
      

      datetime.date.today().timetuple()[:3]
      (2020, 6, 25)
      

      import datetime
      today_date = datetime.datetime.today()
      date_list = [today_date.year, today_date.month, today_date.day]
      

      【讨论】:

        【解决方案6】:

        您可以使用split(),而不是list()

        from datetime import date
        today_date = date.today()
        print(str(today_date).split('-'))
        

        输出:

        ['2020', '06', '25']
        



        你可以做的另一件事:

        from datetime import datetime
        print(str(datetime.now()).split()[0].split('-'))
        

        输出:

        ['2020', '06', '25']
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-05-19
          • 2015-03-09
          • 1970-01-01
          • 1970-01-01
          • 2021-08-16
          • 2017-05-14
          • 1970-01-01
          • 2014-07-29
          相关资源
          最近更新 更多