Python3学习笔记30-datetime模块

datetime是Python处理日期和时间的标准库

 

获取当前的日期和时间

from datetime import datetime
now = datetime.now()
print(now)
print(type(now))

from datetime import datetime 第一个datetime是模块,第二个datetime是该模块下的类。

这个类下面的.now()返回当前日期和时间,其类型是datetime

如果只写import datetime。需要datetime.datetime.now()

 

获取指定日期和时间

from datetime import datetime
dt = datetime(2017,4,19,23,45)
print(dt)

通过传入参数可直接获得指定的日期和时间

 

 

datetime转换为timestamp

1970年1月1日00:00:00 UTC+00:00时区的时刻称为epoch time,记为0。当前时间相对于epoch time的秒数,称为timestamp,1970年前的时间timestamp为负数 。

假定时间已校准,那么全球各地的计算机任意时刻的timestamp都是完全相同的,所以计算机存储的当前时间用timestamp表示。

调用timestamp()方法,将datetime转换成timestamp

from datetime import datetime
dt = datetime(2017,4,19,23,45)
print(dt)
ts = dt.timestamp()
print(ts)

 

timestamp转换成datetime

from datetime import datetime
dt = datetime(2017,4,19,23,45)
print(dt)
ts = dt.timestamp()
print(ts)
print(datetime.fromtimestamp(ts))
print(datetime.utcfromtimestamp(ts))

使用fromtimestamp()可将timestamp转换成本地时间

使用utcfromtmestamp()可将timestamp转成成utc时间

因为北京是utc+8:00,所以utc时间会减少八小时

 

str转换成datetime

from datetime import datetime
times = '2015-12-24 18:29:30'
print(type(times))
cd = datetime.strptime(times,'%Y-%m-%d %H:%M:%S')
print(type(cd))

通过datetime.strptime()实现,需要一个日期和时间的格式化字符串,格式可参考python文档。转换后的datetime没有时区信息

 

datetime转换成str

from datetime import datetime
now = datetime.now()
print(now.strftime('%a, %b %d %H:%M:%S'))

使用strftime()可将datetime转换成对应格式的str

 

datetime加减

from datetime import datetime,timedelta
now = datetime.now()
print(now)
print(now+timedelta(days=1,hours=10))

通过timedelta类,使用+,- 可计算前几天或后几天的时间

 

 

本地时间转换为utc时间

本地时间是指系统设置时区的时间,比如北京时间是UTC+8:00时区的时间,而UTC时间是指UTC+0:00的时间

datetime类型有时区属性tzinfo,但是默认为None,可以通过给date设置时区来区分哪个时区

from datetime import datetime,timedelta,timezone
tz = timezone(timedelta(hours=8))#创建时区UTC+8:00
now = datetime.now()
print(now)
dt = now.replace(tzinfo=tz)#设置为UTC+8:00
print(dt)

 

时区转换

from datetime import datetime,timedelta,timezone
utc = datetime.utcnow().replace(tzinfo = timezone.utc)#拿到当前utc时间,并将时区设置为utc+0:00
print(utc)
bj = utc.astimezone(timezone(timedelta(hours=8)))#将时区转换为北京时间
print(bj)

使用utcnow()可获得当前utc时间,使用带时区的datetime,通过astimezone()方法,可以转换到任意时区

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值