簡體   English   中英

在python中將日期字符串轉換為日期時間對象時,微秒部分丟失

[英]Microsecond part lost when converting a date string to a datetime object in python

我有以下日期字符串:

dtstr = '2010-12-19 03:44:34.778000'

我想將它轉換為日期時間對象,所以我繼續如下:

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, 34,778000)而不是datetime.datetime(2010, 12, 19, 3, 44, 34,778000)

為什么微秒部分被省略了? 我怎樣才能獲得datetime.datetime(2010, 12, 19, 3, 44, 34,778000)

請幫助謝謝

from datetime import datetime

dtstr = '2010-12-19 03:44:34.778000'
format = "%Y-%m-%d %H:%M:%S.%f"
a = datetime.strptime(dtstr,format)
print a.microsecond

time處理自Unix紀元以來的秒數,因此使用time會丟失微秒。 直接使用datetime.strptime

time.struct_time通過返回的對象time.strptime不存儲毫秒:

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)

但是dt.datetime.strptime返回的datetime對象確實存儲了毫秒:

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM