3 回答

TA貢獻1828條經(jīng)驗 獲得超4個贊
Python 3.3+
import pytz
import datetime
dt = datetime.datetime.strptime('2019-09-30 09:00', '%Y-%m-%d %H:%M')
ts = pytz.utc.localize(dt).timestamp()

TA貢獻1862條經(jīng)驗 獲得超6個贊
您需要做的就是在正確的時區(qū)正確解析時間字符串,然后獲取其時間戳:
from pytz import timezone
from datetime import datetime
calcutta = timezone('Asia/Calcutta')
naive_ts = datetime.strptime('2019-11-09 10:10:10', '%Y-%m-%d %H:%M:%S')
local_ts = calcutta.localize(naive_ts)
epoch_ts = local_ts.timestamp()
或作為單行:
timezone('Asia/Calcutta').localize(datetime.strptime('2019-11-09 10:10:10', '%Y-%m-%d %H:%M:%S')).timestamp()
“GMT”在這里無關(guān)緊要,UNIX 紀元.timestamp()與時區(qū)無關(guān)。你可以做local_ts.timestamp()和local_ts.astimezone(pytz.utc).timestamp(),它們都產(chǎn)生相同的數(shù)字,因為它們都表示完全相同的時間點(只是在地球上的不同位置)。您需要做的就是將表示為 YYYY-MM-DD HH:MM:SS 的時間戳轉(zhuǎn)換為感知(包括時區(qū))datetime對象,然后.timestamp()無論您將其轉(zhuǎn)換為哪個時區(qū),它都將是相同的。

TA貢獻2037條經(jīng)驗 獲得超6個贊
我找到了解決方案
輸入:(當?shù)貢r間) 2019-11-09 10:10:10
輸出:(格林威治標準時間) 1573274410
import calender
import time
from dateTime import dateTime
LocalTime = "2019-11-09 10:10:10"
GmtTime = datetime.fromtimestamp(LocalTime, timezone('Asia/Calcutta').strftime("%Y-%m-%d %H:%M:%S")
GmtTimeStamp = calendar.timegm(time.strptime(str(GmtTime), "%Y-%m-%d %H:%M:%S"))
它解決了我的問題。
添加回答
舉報