2
我編寫了一個方法將日期字符串轉換爲python中的日期。當我從外部方法獲取日期時,毫秒精度將會丟失,而當我在該方法內執行轉換時,將保留精度。有人能告訴我這裏有什麼問題嗎?非常感謝!如果條件表達式的計算結果爲block,則爲Python
from datetime import datetime
from pytz import timezone
def getUTCTimeFromString(date_string):
#allow time with Z in it
if date_string:
if date_string.find('Z'):
date_string = date_string[:len(date_string)-1]
return datetime.strptime(date_string,"%Y-%m-%dT%H:%M:%S.%f").replace(tzinfo=timezone('UTC'))
return None
def getStringFromDate(dateObject):
return dateObject.strftime('%Y-%m-%d %H:%M:%S.%f')
#Method being tested
# Input 2012-02-27T05:32:10.607Z
def getEasternTimeFromString(date_string):
if date_string:
if date_string.find('Z'):
date_string = date_string[:len(date_string)-1]
local_date = datetime.strptime(date_string,"%Y-%m-%dT%H:%M:%S.%f").replace(tzinfo=timezone('UTC'))
utc_date = getUTCTimeFromString(date_string)
print 'utc date from external method --> '+getStringFromDate(utc_date)
print 'utc date calculated locally -->' +getStringFromDate(local_date)
return utc_date.astimezone(timezone('US/Eastern'))
return None
真棒。謝謝!我對python相當陌生。沒意識到這會打破。順便說一句,我使用'date_string.count('Z')'而不是查找'date_string.find('Z')'在我的情況下工作正常。 – Jay 2012-02-29 21:50:41
@Jay:更好的是'date_string.endswith('Z')',它檢查字符串末尾的存在*和*位置。而且,'date_string = date_string [: - 1]'足以截斷最後一個字符。 – 2012-02-29 21:56:23
已採取和實施的建議。謝謝格雷格! – Jay 2012-02-29 22:03:36