Discuss / Python / 居然都是用的正则表达式, 我不是呵呵呵

居然都是用的正则表达式, 我不是呵呵呵

Topic source

gylpnj

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

因为我看了下文档, 有 %Z 和 %z 的时区参数...

#!/usr/bin/env python3
# -*- coding : utf-8 -*-

import re
from datetime import datetime, timezone, timedelta

def to_timestamp (dt_str, tz_str):
    zone_name = tz_str[:3]
    zone_offset = tz_str[3:].replace(':', '')
    if len(zone_offset) == 4:
        zone_offset = zone_offset[:1] + '0' + zone_offset[1:]
    t = datetime.strptime((dt_str + ' ' + zone_name + ' ' + zone_offset), '%Y-%m-%d %H:%M:%S %Z %z')
    return t.timestamp()

if __name__ == '__main__':
    # 测试:
    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')

  • 1

Reply