使用 strptime 更改日期时间格式
changing datetime format with strptime
我正在尝试从日期时间对象中添加或减去时间,然后将其转换为 strptime,但我收到一条错误消息。
下面是获取日期时间对象的 'hour' 的示例,向其添加 + 1,然后尝试对其使用 strptime;
time1 = datetime.datetime.strptime("09/Sep/2015:08:00:00", "%d/%b/%Y:%H:%M:%S")
print time1.hour
print time1.hour + 1
> 8
9
time3 = time1.hour + 1
print time3.strptime('%H')
> print time3.strptime('%H')
AttributeError: 'int' object has no attribute 'strptime'
有什么方法可以操作日期时间对象并更改其格式(使用 strptime 或类似的方法)?
time1.hour
是一个 int
,1
是一个 int
,因此 time3
是一个 int
,这就是为什么你收到此错误。
您还应该在最后一行使用 strftime
,而不是 strptime
。
您可以使用 relativedelta
或 timedelta
(请参阅评论),但我想 datetime.replace
会更容易:
time1 = datetime.datetime.strptime("09/Sep/2015:08:00:00", "%d/%b/%Y:%H:%M:%S")
time3 = time1.replace(hour=time1.hour + 1)
print time3.strftime('%H')
>> 09
EDIT 这确实会在 23:00
之后多次失败。使用评论中推荐的方法以获得更强大的解决方案。
我正在尝试从日期时间对象中添加或减去时间,然后将其转换为 strptime,但我收到一条错误消息。
下面是获取日期时间对象的 'hour' 的示例,向其添加 + 1,然后尝试对其使用 strptime;
time1 = datetime.datetime.strptime("09/Sep/2015:08:00:00", "%d/%b/%Y:%H:%M:%S")
print time1.hour
print time1.hour + 1
> 8
9
time3 = time1.hour + 1
print time3.strptime('%H')
> print time3.strptime('%H')
AttributeError: 'int' object has no attribute 'strptime'
有什么方法可以操作日期时间对象并更改其格式(使用 strptime 或类似的方法)?
time1.hour
是一个 int
,1
是一个 int
,因此 time3
是一个 int
,这就是为什么你收到此错误。
您还应该在最后一行使用 strftime
,而不是 strptime
。
您可以使用 relativedelta
或 timedelta
(请参阅评论),但我想 datetime.replace
会更容易:
time1 = datetime.datetime.strptime("09/Sep/2015:08:00:00", "%d/%b/%Y:%H:%M:%S")
time3 = time1.replace(hour=time1.hour + 1)
print time3.strftime('%H')
>> 09
EDIT 这确实会在 23:00
之后多次失败。使用评论中推荐的方法以获得更强大的解决方案。