Python 时间转换

获取当前日期和时间

>>> from datetime import datetime
>>> now=datetime.now()
>>> print(now)
2018-07-31 15:30:48.205399
>>> print(type(now))
<class 'datetime.datetime'>

获取指定某个日期和时间

>>> from datetime import datetime
>>> dt=datetime(2018,7,31,15,32)
>>> print(dt)
2018-07-31 15:32:00

datetime转换为timestamp

>>> from datetime import datetime
>>> dt=datetime(2018,7,31,15,32)
>>> print(dt)
2018-07-31 15:32:00
>>> dt.timestamp()
1533022320.0

timestamp转换为datetime

>>> from datetime import datetime
>>> t=1533021480.0
>>> print(datetime.fromtimestamp(t))#本地时间
2018-07-31 15:18:00
>>> print(datetime.utcfromtimestamp(t))#UTC标准时间
2018-07-31 07:18:00

str转换为datetime

>>> from datetime import datetime
>>> cday=datetime.strptime('2018-7-31 14:42:00','%Y-%m-%d %H:%M:%S')
>>> print(cday)
2018-07-31 14:42:00

datetime转换为str

>>> from datetime import datetime
>>> now=datetime.now()
>>> print(now.strftime('%a, %b %d %H:%M'))
Tue, Jul 31 15:46

datetime加减

>>> from datetime import datetime, timedelta
>>> now=datetime.now()
>>> now
datetime.datetime(2018, 7, 31, 15, 48, 17, 52625)
>>> now+timedelta(hours=10)
datetime.datetime(2018, 8, 1, 1, 48, 17, 52625)
>>> now-timedelta(days=1)
datetime.datetime(2018, 7, 30, 15, 48, 17, 52625)
>>> now+timedelta(days=2,hours=12)
datetime.datetime(2018, 8, 3, 3, 48, 17, 52625)

本地时间转换为UTC时间

>>> from datetime import datetime,timedelta,timezone
>>> tz_utc_8=timezone(timedelta(hours=8))#创建时区UTC+8:00
>>> now=datetime.now()
>>> now
datetime.datetime(2018, 7, 31, 16, 26, 34, 662144)
>>> dt=now.replace(tzinfo=tz_utc_8)#强制设置为UTC+8:00,如果系统恰好是UTC+8:00,那么没问题,
#否则不能强制设置UTC+8:00
>>> dt
datetime.datetime(2018, 7, 31, 16, 26, 34, 662144, tzinfo=datetime.timezone(datetime.timedelta(seconds=28800)))

时区转换

>>> utc_dt=datetime.utcnow().replace(tzinfo=timezone.utc)
>>> print(utc_dt)
2018-07-31 08:32:40.472939+00:00
>>> bj_dt=utc_dt.astimezone(timezone(timedelta(hours=8)))#astimezone()将转换时区为北京时间
>>> print(bj_dt)
2018-07-31 16:32:40.472939+08:00
>>> tokyo_dt=utc_dt.astimezone(timezone(timedelta(hours=9)))#astimezone()将转换时区为东京时间
>>> print(tokyo_dt)
2018-07-31 17:32:40.472939+09:00
>>> tokyo_dt2=bj_dt.astimezone(timezone(timedelta(hours=9)))#将bi_dt转换为东京时间
>>> print(tokyo_dt2)
2018-07-31 17:32:40.472939+09:00

datetime表示的时间需要时区信息才能确定一个特定的时间,否则只能视为本地时间

如果要存储datetime,最佳方法是将其转换为timestamp再存储,因为timestamp的值与时区完全无关

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值