2017-02-21 7 views
0

logstashにいくつかのサーバメトリクスをエクスポートするpythonスクリプトを作成しようとしています。夏時間を有効にした別のタイムゾーンでは動作しないようです。このコードは、DSTを有効または無効にして同じ時刻を返し続けます。私の現在のコードはこれです:サーバの現在のタイムゾーンがDSTを有効にしているか確認してください。

def get_formatted_tz(): 
    tz = str.format('{0:05.2f}', float(time.timezone)/3600 - time.daylight).replace('.', ':') 
    return '-' + tz if time.timezone > 0 else '+' + tz 

私はこのような関数を呼び出しています:

formatted = time.strftime('%Y-%m-%dT%H:%M:%S') 
tz = self.get_formatted_tz() 
isodate = formatted + tz 

私はこれを改善するにはどうすればよいですか?どんな助けでも大歓迎です。

+0

私はあなたの質問に関係のない1つの問題を発見しました...あなたはにフロートを変換しています'.'を': 'で置き換えることで、時間を節約できます。それはあなたが望むことをするつもりはありません。あなたが実際に求めている問題については、望ましくない動作を説明するための例を提供してください。 – glibdud

+0

@glibdud私はPythonに関しては初心者です。私はISO8601形式で時間をエクスポートする必要があります。私は時間ライブラリだけでそれを達成することができなかったので、私はこのハック変換をやめました。 例:私のサーバーは現在BRST(UTC-2 /ブラジルの節約時間)になっていますが、エクスポート時間は常にBRT(UTC-3 /ブラジル時間)です。 –

答えて

0

もう少し調べて答えを見つけました。私は時間ライブラリのみを使用していましたが、現在はdatetimeを使用しています。 ISO-8601へのローカル

import datetime 
datetime.datetime.now().isoformat() 

ISO-8601にUTC:

import datetime 
datetime.datetime.utcnow().isoformat() 
関連する問題