【问题标题】:Python datetime listPython 日期时间列表
【发布时间】:2015-04-07 09:48:51
【问题描述】:

我有一个日期时间对象列表:

t = [datetime.date(2014, 12, 30), datetime.date(2015, 1, 2), datetime.date(2015, 1, 3), datetime.date(2015, 1, 5), datetime.date(2015, 2, 19)]

当返回列表的第一项t[0] 时,结果是2014-12-30。有什么办法可以让结果变为datetime.date(2014, 12, 30)

【问题讨论】:

  • 一个datetime.time对象,你看到的只是__str__而不是__repr__
  • print t[0] 可能看起来像 2014-12-30type(t[0])datetime.date
  • 我不知道你使用的是什么版本的 python,因为当你访问上面的元素时,你会得到一个日期对象,而不是你想要的日期字符串。跨度>

标签: python list date datetime


【解决方案1】:

t[0] datetime.date 对象:

>>> import datetime
>>> t = [datetime.date(2014, 12, 30)]
>>> t
[datetime.date(2014, 12, 30)]
>>> type(t[0])
<type 'datetime.date'>
>>> t[0]
datetime.date(2014, 12, 30)

如果你print 它,你会看到对象的__str__ ("string") 版本:

>>> print t[0]
2014-12-30

如果您想查看__repr__ ("representation"),请明确:

>>> print repr(t[0])
datetime.date(2014, 12, 30)

或者,如果您将其用作较大字符串的一部分:

>>> '{!r}'.format(t[0])
'datetime.date(2014, 12, 30)'

【讨论】:

    【解决方案2】:

    看起来你正在做的是打印 t[0] 的结果。 所以给出这个例子:

    In [20]: d1 = datetime.date.today()
    
    In [21]: d2 = datetime.date.today()
    
    In [22]: l = [d1, d2]
    
    In [23]: l
    Out[23]: [datetime.date(2015, 4, 7), datetime.date(2015, 4, 7)]
    
    In [23]: l
    Out[23]: [datetime.date(2015, 4, 7), datetime.date(2015, 4, 7)]
    
    In [24]: l[0]
    Out[24]: datetime.date(2015, 4, 7)
    
    In [25]: print l[0]
    2015-04-07
    
    In [26]: print type(l[0])
    <type 'datetime.date'>
    

    您将获得 'datetime.date' 和 datetime.date(2015, 4, 7) 类型作为切片列表的返回。但是这个类字符串表示默认为 %Y-%m-%d 打印 2015-04-07

    如果您能提供更多代码并解释您试图实现的目标,我将能够更新答案。

    【讨论】:

      猜你喜欢
      • 2023-02-26
      • 2017-05-14
      • 2017-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-20
      • 1970-01-01
      相关资源
      最近更新 更多