1
我有一個日期(我想它是在UTC,但也可能是在本地時間) 我想將此日期轉換爲秒...和返回(秒 - >日期)將時間轉換爲秒和返回
因此,在一些#1之後的研究,我想出了這兩個功能:
def UTC_to_sec(utc_time):
"""
convert time in UTC to seconds.
input: s string
output: float
"""
return time.mktime(datetime.datetime.strptime(utc_time, "%Y-%m-%d %H:%M:%S").timetuple())
def sec_to_UTC(s):
"""
convert time in to seconds to UTC.
input: time in seconds (float)
output: string
"""
return datetime.datetime.utcfromtimestamp(s).strftime('%Y-%m-%d %H:%M:%S')
# test with mydate="2010-09-15 08:31:00"
print "time ", mydate, " (UTC) --> (",UTC_to_sec(maydate), ") [s] --> ",sec_to_UTC(UTC_to_sec(mydate)), " (UTC)"
結果是:
時間:2010-09-15 :31:00(UTC) - >(1284532260.0)[s] - > 2010-09-15 :31:00(UTC)
這是否意味着mydate
在本地時間,而不是UTC?
修改函數sec_to_UTC()
時按以下我只得到正確的結果:
datetime.datetime.utcfromtimestamp(s-time.altzone).strftime('%Y-%m-%d %H:%M:%S')
time.altzone
在我的情況-7200 [s]之內。但這是一個令人討厭的解決方法。
我的問題是:什麼使上述日期 - 秒 - 日期轉換取決於時區?
哦非常真實!這意味着我需要通過添加time.altzone的值來糾正mktime的返回值,對吧? – Tengis