2
日付文字列をPythonの日付に変換するメソッドを記述しました。外部メソッドから日付を取得すると、ミリ秒精度が失われますが、メソッド内でキャストを実行すると精度は保持されます。誰かが私にここで何が問題なのかを教えてもらえますか?どうもありがとう!条件式が-1と評価された場合にブロックが実行される場合の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です。これが壊れることは分かりませんでした。 Btw、私の '' date_string.find( 'Z') 'の代わりに' date_string.count( 'Z') 'を使用しました。 – Jay
@Jay:文字列の最後に存在する*と*の位置を調べる 'date_string.endswith( 'Z')'がさらに良いでしょう。また、 'date_string = date_string [: - 1]'は最後の文字を切り詰めるのに十分です。 –
提案が実行されました。グレッグありがとう! – Jay