假設你獲取了使用者輸入的日期和時間如2015-1-21 9:01:30,以及一個時區資訊如UTC+5:00,均是str,請編寫一個函式將其轉換為timestamp——python學習筆記
阿新 • • 發佈:2019-01-06
1. 題目:
假設你獲取了使用者輸入的日期和時間如2015-1-21 9:01:30,以及一個時區資訊如UTC+5:00,均是str,請編寫一個函式將其轉換為timestamp。
2. 程式碼如下:
import re
from datetime import datetime, timezone, timedelta
def to_timestamp(dt_str, tz_str):
# 首先,獲取使用者輸入的時間的datetime
input_dt = datetime.strptime(dt_str, '%Y-%m-%d %H:%M:%S')
# 上面得到的datetime是沒有時區的,因此設定使用者輸入的對應時區
# 那麼此時需要利用正則獲取使用者輸入的時區
time_zone_num = re.match(r'UTC([+|-][\d]{1,2}):00', tz_str).group(1)
time_zone = timezone(timedelta(hours=int(time_zone_num))) # 建立時區UTC-??
# 將上面得到的datetime強制設定為UTC-??
input_dt_tz = input_dt.replace(tzinfo=time_zone)
return input_dt_tz.timestamp()
# 測試:
t1 = to_timestamp('2015-6-1 08:10:30', 'UTC+7:00')
assert t1 == 1433121030.0, t1
t2 = to_timestamp('2015-5-31 16:10:30', 'UTC-09:00')
assert t2 == 1433121030.0, t2
print('ok')
希望能夠幫助到大家,有什麼問題可以 直接評論即可,我會及時回覆的。