Python之datetime总结

看了一篇博文介绍的Python的内建模块datetime,恩,确实被绕晕了,写篇博客总结一下,理理思绪。


1.datetime是Python处理时间的一个标准库,在计算机中存储的时间通常是由timestamp表示的,所以,如果想要存储某个时间,需要把要存储的时间类型转换为timestamp

举个栗子如下:加入把当前时间转换为timestamp类型

from datetime import datetime
datetime.now().timestamp()

2.通过datetime.strptime()将str转为datetime

from datetime import datetime
cday = datetime.strptime('2016-6-17 16:19:59', '%Y-%m-%d %H:%M:%S')

3.本地时间转为UTC时间


>>> from datetime import datetime, timedelta, timezone
>>> tz_utc_8 = timezone(timedelta(hours=8)) # 创建时区UTC+8:00
>>> now = datetime.now()
>>> now
datetime.datetime(2016, 6, 17, 16, 2, 10, 871012)
>>> dt = now.replace(tzinfo=tz_utc_8) # 强制设置为UTC+8:00
>>> dt
datetime.datetime(2016, 6, 17, 16, 2, 10, 871012, tzinfo=datetime.timezone(datetime.timedelta(0, 28800)))

通过timezone将时区强制转为utc+8:00


4.通过astimezone实现时区的转换

# 拿到UTC时间,并强制设置时区为UTC+0:00:
>>> utc_dt = datetime.utcnow().replace(tzinfo=timezone.utc)
>>> print(utc_dt)
2016-06-17 16:13:12.377316+00:00
# astimezone()将转换时区为北京时间:
>>> bj_dt = utc_dt.astimezone(timezone(timedelta(hours=8)))
>>> print(bj_dt)
2016-06-17 16:13:12.377316+08:00

最后借用一道题目来总结下上面的知识点:

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

from datetime import datetime, timezone, timedelta

def timestamp(tr_time, tr_utc):
    #首先将用户输入的时间转为datetime
    td_time = datetime.stamp(tr_time,'%Y-%m-%d %H:%M:%S')

    #然后通过正则取得时区
    td_utc=re.match(r'^UTC([+|-]\d{1,2}):00$',tr_utc).group(1)
    td=timezone(timedelta(hours=int(td_utc)))

    #将datetime类型的时间转为UTC时间

    dt=td_time.replace(tzinfo=td)
    return dt.timestamp()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值