我的时间为2016-03-07 14:42:48.901013+05:30
,但这是字符串形式。我希望将它作为日期时间对象类型,因为我想将它与django的update_ts(auto_add_now)字段进行比较。任何帮助实现这一目标将受到高度赞赏。
我尝试过使用x = datetime.strptime(ts, '%Y-%m-%dT%H:%M:%S.%UTZ')
,但它对我没用。
答案 0 :(得分:2)
您应该使用正确的格式'%Y-%m-%d %H:%M:%S.%f'
并忽略时区:ts.split(' +')[0]
x= datetime.strptime(ts.split('+')[0],'%Y-%m-%d %H:%M:%S.%f')
ofcouse你应该自己处理时区或使用默认时区。
您也可以使用dateutil.parser.parse
:
首先安装python-dateutil
包:pip install python-dateutil
然后:
from dateutil.parser import parse
x = parse(ts)
datetime.datetime(2016, 3, 7, 14, 42, 48, 901013, tzinfo=tzoffset(None, 19800))
也请查看此参考:Convert timestamps with offset to datetime obj using strptime
答案 1 :(得分:1)
您可以使用dateutil解析器执行此操作
使用dateutil之前,请使用pip install python-dateutil
from dateutil import parser
your_date_string = '2016-03-07 14:42:48.901013+05:30'
yourDate = parser.parse(your_date_string)
# yourDate -> datetime.datetime(2016, 3, 7, 14, 42, 48, 901013, tzinfo=tzoffset(None, 19800))
答案 2 :(得分:0)
如果您只想要Datetime对象,
a = '2016-03-07 14:42:48.901013+05:30'.split('+')[0]
get_dateiobj = datetime.strptime(a,"%Y-%m-%d %H:%M:%S.%f")
它将返回到您的时区
dateutil also the更好的方法看起来像angularjs - momentjs。
您可以使用此解析多个dateformat。
pip install python-dateutil
你可以解析不同的格式,比如
from dateutil.parser import *
now = parse("2016-03-07 14:42:48.901013+05:30")