2017-02-21 64 views
0

我正在嘗試構建一個python腳本,用於將幾個服務器指標導出到logstash。我似乎無法使其啓用夏令時的不同時區。在啓用或不啓用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

我發現一個無關的問題,你的問題......你一個浮點數轉換成一用':'替換'.'。這不會做你想做的。至於您實際詢問的問題,請舉例說明不良行爲。 – glibdud

+0

@glibdud我是python的初學者,我必須以ISO8601格式導出時間。我無法單獨完成時間庫的工作,所以我最終做了這個黑客轉換。 一個示例是:我的服務器當前處於BRST(UTC-2/Brazilian Savings Time),但導出的時間總是BRT(UTC-3/Brazilian Time) –

回答

0

多搜索一下,找到答案。我只使用時間庫,現在我正在使用日期時間。

本地到ISO-8601:

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

UTC到ISO-8601:

import datetime 
datetime.datetime.utcnow().isoformat() 
相關問題