格式化日期为:
dob = datetime(0000, 00, 00)
dob = dob.strftime("%Y-%m-%d")
但它会出错:ValueError: year is out of range
如何在python中使用datetime(0000,00,00)
格式化strftime()
?
答案 0 :(得分:5)
Python的documentation on the datetime
module,特别是-ProjectName
file1.xml
file2.xml
project.jar
类声明datetime
对象可以具有以下范围内的属性值:
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
为MINYEAR
。
1
日期或日期时间对象中允许的最大年份数。
datetime.MAXYEAR
为MAXYEAR
。
这意味着您不能在9999
类的构造函数中使用这些(datetime(0000, 00, 00)
)参数,因此datetime
表示给定年份超出范围
由于您无法首先使用以下参数构造ValueError
对象,因此无法在其上调用datetime
方法。
答案 1 :(得分:0)
您不能使用值0的年/月/日。
edob = datetime(1989, 1, 1)
dob = dob.strftime("%Y-%m-%d")
&#39; 1989-01-01&#39;
答案 2 :(得分:0)
超出范围 - 公共时代没有year 0,公历中也没有一个月或零日。除此之外,如果time_t是32位,您可能无法在1902年之前处理(Unix time的属性)。
如果你真的想在其中生成一个带有零的字符串作为格式的示例,你可以生成一个具有一些功能日期的字符串(例如99-09-09)并用零替换数字。
一般来说,我更喜欢样本日期,您可以根据它们的值来推断字段,例如1980-10-30。这不会给日和月的混乱留下空间。
答案 3 :(得分:0)
日期,月份和年份不能为0.如果您希望提供某种默认值,请考虑给它一个回溯值,如1970年1月1日或任何其他日期,年份范围为1-9999,日期范围为1 -30(适用时为28,29,31)和1-12范围内的月份