Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中将日期字符串转换为日期时间对象时,微秒部分丢失_Python_Datetime_Time - Fatal编程技术网

在python中将日期字符串转换为日期时间对象时,微秒部分丢失

在python中将日期字符串转换为日期时间对象时,微秒部分丢失,python,datetime,time,Python,Datetime,Time,我有以下日期字符串: dtstr = '2010-12-19 03:44:34.778000' 我想将其转换为datetime对象,因此我进行了如下操作: import time from datetime import datetime dtstr = '2010-12-19 03:44:34.778000' format = "%Y-%m-%d %H:%M:%S.%f" datetime.fromtimestamp(time.mktime(time.strptime(dtstr,form

我有以下日期字符串:

dtstr = '2010-12-19 03:44:34.778000'
我想将其转换为datetime对象,因此我进行了如下操作:

import time
from datetime import datetime

dtstr = '2010-12-19 03:44:34.778000'
format = "%Y-%m-%d %H:%M:%S.%f"
datetime.fromtimestamp(time.mktime(time.strptime(dtstr,format)))
但是它返回:
datetime.datetime(2010,12,19,3,44,34)
而不是
datetime.datetime(2010,12,19,3,44,34778000)

为什么微秒部分被省略了?。如何获取
datetime.datetime(2010,12,19,3,44,34778000)

请帮忙 多谢各位


time
处理Unix时代以来的秒数,因此使用
time
会损失微秒数。直接使用
datetime.strtime
time返回的
time.struct\u time
对象。strtime
不存储毫秒:

In [116]: time.strptime(dtstr,"%Y-%m-%d %H:%M:%S.%f",)
Out[116]: time.struct_time(tm_year=2010, tm_mon=12, tm_mday=19, tm_hour=3, tm_min=44, tm_sec=34, tm_wday=6, tm_yday=353, tm_isdst=-1)
In [117]: import datetime as dt

In [118]: dt.datetime.strptime(dtstr,"%Y-%m-%d %H:%M:%S.%f")
Out[118]: datetime.datetime(2010, 12, 19, 3, 44, 34, 778000)
但是,
dt.datetime.strtime
返回的datetime对象不存储毫秒:

In [116]: time.strptime(dtstr,"%Y-%m-%d %H:%M:%S.%f",)
Out[116]: time.struct_time(tm_year=2010, tm_mon=12, tm_mday=19, tm_hour=3, tm_min=44, tm_sec=34, tm_wday=6, tm_yday=353, tm_isdst=-1)
In [117]: import datetime as dt

In [118]: dt.datetime.strptime(dtstr,"%Y-%m-%d %H:%M:%S.%f")
Out[118]: datetime.datetime(2010, 12, 19, 3, 44, 34, 778000)
可能的副本。