如何在 python 中使用 strftime() 格式化 '0000-00-00 00:00:00'?
How to format '0000-00-00 00:00:00' using strftime() in python?
格式化日期为:
dob = datetime(0000, 00, 00)
dob = dob.strftime("%Y-%m-%d")
但它给出错误:ValueError: year is out of range
如何使用 python 中的 strftime()
格式化 datetime(0000,00,00)
?
您不能使用值为 0 的 year/month/day。
dob = datetime(1989, 1, 1)
dob = dob.strftime("%Y-%m-%d")
'1989-01-01'
Python 的 documentation on the datetime
module,特别是 datetime
class 声明 datetime
对象可以具有以下范围内的属性值:
MINYEAR <= year <= MAXYEAR
1 <= month <= 12
1 <= day <= number of days in the given month and year
0 <= hour < 24
0 <= minute < 60
0 <= second < 60
0 <= microsecond < 1000000
该模块还定义了以下常量:
datetime.MINYEAR
The smallest year number allowed in a date or datetime object. MINYEAR
is 1
.
datetime.MAXYEAR
The largest year number allowed in a date or datetime object. MAXYEAR
is 9999
.
这意味着您不能在 datetime
class 的构造函数中使用那些 (datetime(0000, 00, 00)
) 参数,因此 ValueError
表明给定的年份已经结束范围
因为你不能首先用下面的参数构造一个 datetime
对象,所以没有办法调用它的 strftime
方法。
超出范围 - 没有 year 0 in the Common Era, nor a month or day zero in the Gregorian calendar. Beyond that, if time_t is 32-bit you might not be able to process years before 1902 (a property of Unix time)。
如果您真的想生成一个包含零的字符串作为格式的示例,您可以生成一个带有一些有效日期(例如 99-09-09)并将数字替换为零的字符串。
一般来说,我更喜欢示例日期,您可以从中根据字段值推断字段,例如 1980-10-30。这不会为混淆日期和月份留下空间。
日期、月份和年份不能为 0。如果您希望提供某种默认值,请考虑为其提供回溯日期,例如 1970 年 1 月 1 日或任何其他年份在 1-9999 范围内的日期,日期在范围 1-30(28、29、31 视情况而定)和月份范围 1-12
格式化日期为:
dob = datetime(0000, 00, 00)
dob = dob.strftime("%Y-%m-%d")
但它给出错误:ValueError: year is out of range
如何使用 python 中的 strftime()
格式化 datetime(0000,00,00)
?
您不能使用值为 0 的 year/month/day。
dob = datetime(1989, 1, 1)
dob = dob.strftime("%Y-%m-%d")
'1989-01-01'
Python 的 documentation on the datetime
module,特别是 datetime
class 声明 datetime
对象可以具有以下范围内的属性值:
MINYEAR <= year <= MAXYEAR 1 <= month <= 12 1 <= day <= number of days in the given month and year 0 <= hour < 24 0 <= minute < 60 0 <= second < 60 0 <= microsecond < 1000000
该模块还定义了以下常量:
datetime.MINYEAR
The smallest year number allowed in a date or datetime object.
MINYEAR
is1
.
datetime.MAXYEAR
The largest year number allowed in a date or datetime object.
MAXYEAR
is9999
.
这意味着您不能在 datetime
class 的构造函数中使用那些 (datetime(0000, 00, 00)
) 参数,因此 ValueError
表明给定的年份已经结束范围
因为你不能首先用下面的参数构造一个 datetime
对象,所以没有办法调用它的 strftime
方法。
超出范围 - 没有 year 0 in the Common Era, nor a month or day zero in the Gregorian calendar. Beyond that, if time_t is 32-bit you might not be able to process years before 1902 (a property of Unix time)。
如果您真的想生成一个包含零的字符串作为格式的示例,您可以生成一个带有一些有效日期(例如 99-09-09)并将数字替换为零的字符串。
一般来说,我更喜欢示例日期,您可以从中根据字段值推断字段,例如 1980-10-30。这不会为混淆日期和月份留下空间。
日期、月份和年份不能为 0。如果您希望提供某种默认值,请考虑为其提供回溯日期,例如 1970 年 1 月 1 日或任何其他年份在 1-9999 范围内的日期,日期在范围 1-30(28、29、31 视情况而定)和月份范围 1-12