2017-09-11 4 views
1

私はPythonには新しく、地元の日時を返そうとしています。 いつものように、これを行う方法はさまざまです。Pythonの現地の日時を返す正しい方法

now_date = datetime.now(pytz.timezone('Europe/Bucharest')) 

この1つが正常に動作します: 一つの方法は、時間帯を取得することです。

私はそれがデータベースの日付を取得するのが好きな別の方法です。 これは少し難解です。私はこのように試してみました:

np_server_date = pd.read_sql(sql='SELECT NOW() as data', con=engine) 
date_object = np_server_date.ix[0][data] 
now_date = data_object 

私はそれは彼らが同じ関数内で宣言されているので、私は、何をしないのです

"global name "data" it's not defined" 

エラーを返しますので、私は何かが足りないと思います。そして、データを取得する2つの方法の違いは何ですか? ここでは、私の完全なコードです:

def getlocaldata(): 
    ref_time = dt.time(7,00).strftime('%H:%M:%S') 
    aux_time = dt.time(7,0).strftime('%H:%M:%S') 
    np_server_date = pd.read_sql(sql='SELECT NOW() as data', con=engine) 
    date_object = np_server_date.ix[0][data] 
    now_date = data_object 

答えて

1

あなたはdataの前後に引用符を置くのを忘れていました。

np_server_date.ix[0]['data']はエラーを解決します。 data_objectが定義されていないため

もう一つ、この後の次の行は、おそらく、エラーが発生します。 date_objectに書き換えます。

+0

:)あなたは完全に正しいです。あなたの答えを受け入れる前に、それが2つの方法の違いかどうか教えてください。 – Christian

+0

それはあなたが最初に 'date_object'に値を格納してから' new_date'に移ることに意味がありません。 'new_date'に直接格納します。 –

+0

はい、違いがあります。最初の方法では、あなたの希望に応じてタイムゾーンを選択し、2番目の方法では、データベースのタイムゾーンが何であっても日付を取得します。また、パフォーマンスの違いは、最初のものが2番目のものより速く実行される場合です。 –

関連する問題