2011-03-15 114 views
0

我希望能够格式化日期时间对象,同时将它留作对象。我一直在努力做到这一点,但看起来效率不高。Python:格式化日期时间,同时将其留作日期时间对象

我的具体目标是到秒的额外的数字限制为2。这是我现在怎么做:

now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') 
now_frmt = datetime.datetime.strptime(now, '%Y-%m-%d %H:%M:%S') 

干杯, JJ

+1

你能澄清吗?格式化日期时间对象不应该改变对象本身; 'strftime'返回一个新的字符串,而'strptime'产生一个新的日期时间对象。你的意思是你想要它只存储秒数的2位数(它已经做到了)?你指的是微秒? – 2011-03-16 00:00:57

回答

2

你可以这样对减去关闭微秒:

now = datetime.datetime.now() 
now_frmt = now - datetime.timedelta(microseconds=now.microsecond) 

要四舍五入到最接近的第二个,你可以做到以下几点:

now = datetime.datetime.now() 
delta = (0 if now.microsecond < 500000 else 1000000) - now.microsecond 
now_frmt = now + datetime.timedelta(microseconds=delta)