2014-03-13 71 views
-1

我有一種情況,我想存儲日期,但我也希望它們能夠識別時區?我必須爲此使用datetime.datetime,還是我可以有一個datetime.date對象,該對象可以識別時區?我可以有一個時區感知datetime.date對象嗎?

+0

你試過了嗎? – martineau

+0

爲什麼我會在StackOverflow更高效並且對其他人有用時嘗試它? – jononomo

+2

因爲你本來能夠回答你自己的問題就是爲什麼。 – martineau

回答

4

不,你不能有一個時區感知datetime.date對象。

一個日期無法進行時區知道,因爲這僅僅是時間從區域不同到區域天的,根據需要拖着它的日期。

換句話說:3月1日是3月1日在任何時區。一個給定的地理位置可能會在該日期到達時間,但帶走時間部分,您擁有的是3個數字:一年,一個月和一天。

+0

你說什麼沒有意義,因爲這個日期在時區之間也有所不同。 –

+1

@AbhishekRam:什麼,所以3月1日突然不是3月1日在另一個時區?它可能是3月1日*後*或*更早*,但那是*時間***的*屬性。 「日期」對象不再具有時間性質。 –

+0

@AbhishekRam:這就像說今天的12點和昨天的12點不一樣。兩者都是*時間值*,小時= 12,分鐘= 0,秒= 0。您還需要日期*和*時區,但是您又有一個「日期時間」對象。 –

-2

date對象不接受時區,但是我們可以通過創建一個可識別時區的datetime對象並使用其日期函數來獲取日期對象來解決此問題。

from datetime import datetime 
from pytz import timezone 
datetime_obj = datetime.now(timezone('US/Eastern')) 
date_obj = datetime_obj.date() 
+0

'date'對象並沒有因爲它是從一個可識別時區的'datetime'對象中獲取而沒有區別。它只*具有*年份,月份和日期屬性。美國/東部的日期**與印度標準時間日期沒有什麼不同。 –

相關問題