Discuss / Python / 作业

作业

Topic source

低调蓝LAN

#1 Created at ... [Delete] [Delete and Lock User]
# !/usr/bin/env python3
# -*- coding:utf-8 -*-


import re
from datetime import datetime, timezone, timedelta


def to_timestamp(dt_str, tz_str):
    cday = datetime.strptime(dt_str, '%Y-%m-%d %H:%M:%S')
    utc = re.match(r'^UTC(.)(\d{1,2})(.+)$', tz_str)
    if utc.group(1) == '+':
        utc_num = int(utc.group(2))
    else:
        utc_num = -int(utc.group(2))
    cday = cday.replace(tzinfo=timezone(timedelta(hours=utc_num)))
    stamp_cday = cday.timestamp()
    return stamp_cday


# test
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('pass')

Tiiiso

#2 Created at ... [Delete] [Delete and Lock User]

可以不用判断时区的正负 可以只用一个组 ([+-]\d{1,2}) 得到的 +07 +7 -9 -09 这几个字符串 都能直接int()


  • 1

Reply