【问题标题】:How to initialize datetime 0000-00-00 00:00:00 in Python?如何在 Python 中初始化日期时间 0000-00-00 00:00:00?
【发布时间】:2016-03-07 18:24:36
【问题描述】:

我一直在尝试使用 python 中的日期时间库来创建一个具有以下值的日期时间对象:'0000-00-00 00:00:00'。但是,我不断收到错误,即年份超出范围。如何正确初始化它?

【问题讨论】:

  • 如果碰巧你打算将它初始化为日期'0',这样你就可以在它可能存在之前检查你的变量在循环中的值(并且不想将它设置为 int 或字符串等,然后有重新输入的“费用”)......另一个选择是将其设置为无。你可能不是,但我是:-)

标签: python datetime syntax


【解决方案1】:

没有第 0 年,因为当时人们不知道如何正确计数。

你能得到的最接近的:

>>> from datetime import datetime
>>> datetime.min
datetime.datetime(1, 1, 1, 0, 0)

【讨论】:

    【解决方案2】:

    datetime 中,MINYEAR 的常数是 1:

    日期时间.MINYEAR

    日期或日期时间对象中允许的最小年份数。明年 是 1。

    要初始化可能的最早日期:

    import datetime
    
    earliest_date = datetime.datetime.min 
    # OR
    earliest_date = datetime.datetime(1,1,1,0,0)
    
    print earliest_date.isoformat()
    

    哪些输出:

    0001-01-01T00:00:00
    

    【讨论】:

      【解决方案3】:

      “如何在 Python 中初始化 datetime 0000-00-00 00:00:00?”

      不允许,请参阅手动日期时间。

      该问题的替代解决方案是最短日期时间:

      >>> datetime.datetime.combine(datetime.date.min, datetime.time.min)
      datetime.datetime(1, 1, 1, 0, 0)
      

      在阅读时发现: https://docs.python.org/3.7/library/datetime.html#module-datetime

      【讨论】:

        猜你喜欢
        • 2013-07-12
        • 2016-06-04
        • 1970-01-01
        • 1970-01-01
        • 2013-06-09
        • 2014-02-19
        • 1970-01-01
        • 1970-01-01
        • 2017-09-21
        相关资源
        最近更新 更多