2015-11-01 51 views
-2

这给我一个字符串。我如何返回到日期时间对象,以便我可以做一些日期算术等?日期时间 - 字符串往返

from datetime import datetime, timezone 
s = datetime.now(timezone.utc).astimezone().isoformat() 

这段代码产生了,我很高兴有一个字符串,但我怎么回去datetime

2015-11-01T07:49:35.106745-08:00 
+1

您是否考虑阅读文档或进行任何其他研究?将解决方案并入您的程序中的 – jonrsharpe

+0

是**您的工作**,这不是代码写入服务。 – jonrsharpe

回答

0

在进行日期算术之前不要使用isoformat()来转换时间。

试试这个:

import datetime, time 

d0 = datetime.datetime.now() 
time.sleep(0.1) 
d1 = datetime.datetime.now() 

print('trip began:{}'.format(d0.isoformat())) 
print('trip ended:{}'.format(d1.isoformat())) 
delta = d1 - d0 
print('that took {} seconds'.format(delta.total_seconds())) 

上面没有做正确的事情时区和夏令时,但你原来的问题似乎有部分工作:

datetime.now(timezone.utc).astimezone()

样品输出:

trip began:2015-11-01T08:52:28.326764 
trip ended:2015-11-01T08:52:29.331763 
that took 1.004999 seconds 
+0

我想要一个可读的字符串作为时间戳。 – mcu

+0

@ coding4fun请提供示例输出。 – davejagoda

+0

请参阅我编辑的帖子。我想至少精确到毫秒。 – mcu

1

这个工作,但它比我想看的要忙得多。

dt = datetime.strptime(s[:-3]+s[-2:], "%Y-%m-%dT%H:%M:%S.%f%z") 
print(dt)