熟悉datetime模块

假设你获取了用户输入的日期和时间如2015-1-21 9:01:30,以及一个时区信息如UTC+5:00,均是str,请编写一个函数将其转换为timestamp:

#!/usr/bin/env python
# ! -*- coding: UTF-8 -*-
__time__ = '2017/12/12 0012 下午 6:09'
__author__ = 'Zhangge'

import re
from datetime import datetime, timezone, timedelta

def to_timestamp(dt_str, tz_str):
    tz_str = int(re.findall(r'^UTC([+-]+[0-9]+)\:0{2}', tz_str)[0])
    dt = datetime.strptime(dt_str, '%Y-%m-%d %H:%M:%S')  # str转换为datetime
    dt_timestamp = (dt + timedelta(hours=-tz_str+8)).timestamp() # 减去时区获取utc0:00时间加上8:00
    return dt_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')
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,265评论 0 4
  • datetime类是Python处理日期和时间的标准库。datetime是date与time的结合体,包括date...
    hufengreborn阅读 14,351评论 1 9
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,841评论 18 139
  • 概念解释 时区(Timezone) 为什么会将地球分为不同时区呢?因为地球总是自西向东自转,东边总比西边先看到太阳...
    黑炭妈阅读 6,857评论 0 5
  • 一、MySQL 获得当前日期时间 函数 1.1 获得当前日期+时间(date + time)函数:now() my...
    极简架构阅读 1,236评论 0 1