2015-05-27 112 views
-1

如何將一年中某天的十進制表示轉換爲包含全部日期和時間的所有部分的時間戳?將一年的十進制日期轉換爲時間戳

例如,我的第一個小數是22.968530853511766,我希望它有一個很好的時間戳格式。

+5

那麼'22.968530853511766'轉換成什麼?今年的第二十二天? –

+0

so Jan 22nd,0.968 - > 11:58 pm,粗略的? –

回答

9

將您的值作爲days參數使用timedelta() object;它添加到前一年的午夜12月31日:

from datetime import datetime, timedelta 

epoch = datetime(datetime.now().year - 1, 12, 31) 
result = epoch + timedelta(days=your_decimal) 

演示:

>>> from datetime import datetime, timedelta 
>>> epoch = datetime(datetime.now().year - 1, 12, 31) 
>>> epoch + timedelta(days=22.968530853511766) 
datetime.datetime(2015, 1, 22, 23, 14, 41, 65743) 
>>> print(epoch + timedelta(days=22.968530853511766)) 
2015-01-22 23:14:41.065743 

一個datetime對象可以被格式化任意數量的與datetime.strftime() method方式;我在演示中依靠print()調用的默認str()轉換。

+0

或'datetime(datetime.now()。year,1,1)+ timedelta(days)'。目前尚不清楚「年度十進制日」是否爲「0」。看來我們已經有過這樣的對話。 – jfs

+0

沒有從OP的說明我不得不假設1 == 1月1日.. –

相關問題