1. 程式人生 > >假設你獲取了使用者輸入的日期和時間如2015-1-21 9:01:30,以及一個時區資訊如UTC+5:00,均是str,請編寫一個函式將其轉換為timestamp——python學習筆記

假設你獲取了使用者輸入的日期和時間如2015-1-21 9:01:30,以及一個時區資訊如UTC+5:00,均是str,請編寫一個函式將其轉換為timestamp——python學習筆記

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')

希望能夠幫助到大家,有什麼問題可以 直接評論即可,我會及時回覆的。