「@Author: Runsen」time和datetime是Python处理日期和时间的标准库在我们项目的实际开发当中使用率是非常高的datetime模块有四个重要的类,date,time,datetime,以及timedelta类,分别表示的是日期对象、时间对象、日期时间对象和时间差对象,现在小编就来说说关于pythontime模块?下面内容希望能帮助到你,我们来一起看看吧!

pythontime模块(深入Python中的time和datetime模块)

pythontime模块

「@Author: Runsen」

time和datetime是Python处理日期和时间的标准库。在我们项目的实际开发当中使用率是非常高的。datetime模块有四个重要的类,date,time,datetime,以及timedelta类,分别表示的是日期对象、时间对象、日期时间对象和时间差对象。

时间戳

时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。 注意:目前Python中支持的最大的时间戳为32535244799(3001-01-01 15:59:59)

Python的time块下有很多函数可以转换常见日期格式。如函数time.time()用于获取当前时间戳。例如:

importtime time.time()#返回当前时间的时间戳2000年时间戳都是10位 1557212908.1839943 #获取毫秒级别的时间戳(爬虫参数基本用14位时间戳加密) int(round(time.time()*1000)) 1557212908183

在编写代码时,往往涉及时间、日期、时间戳的相互转换。

「str类型的日期转换为时间戳」

importtime #字符类型的时间 t='2019-05-0715:08:28' #转为时间数组 timeArray=time.strptime(t,"%Y-%m-%d%H:%M:%S") print(timeArray) #timeArray可以调用tm_year等 print(timeArray.tm_year)#2019 #转为时间戳 timeStamp=int(time.mktime(timeArray)) print(timeStamp)#1381419600 #结果如下 time.struct_time(tm_year=2019,tm_mon=5,tm_mday=7,tm_hour=15,tm_min=8,tm_sec=28,tm_wday=1,tm_yday=127,tm_isdst=-1) 2019 1557212908

「字符串格式更改」

#"2019-05-0715:08:28"改为"2019/5/715:08:28" #先转换为时间数组 importtime str_time="2019-05-0715:08:28" time_array=time.strptime(str_time,"%Y-%m-%d%H:%M:%S") other_way_time=time.strftime("%Y/%m/%d%H:%M:%S",time_array) print(other_way_time)#2019/05/0715:08:28 now=datetime.datetime.now() otherStyleTime=now.strftime("%Y--%m--%d%H:%M:%S") print(otherStyleTime)#2019--05--0715:08:28

「时间戳转时间日期」

importtime importdatetime #使用time timeStamp=1557212908 timeArray=time.localtime(timeStamp) otherStyleTime=time.strftime("%Y--%m--%d%H:%M:%S",timeArray) print(otherStyleTime)#2019--05--0715:08:28 #使用datetime timeStamp=1557212908 dateArray=datetime.datetime.fromtimestamp(timeStamp) otherStyleTime=dateArray.strftime("%Y--%m--%d%H:%M:%S") print(otherStyleTime)#2019--05--0715:08:28 #使用datetime,指定utc时间,相差8小时 timeStamp=1557212908 dateArray=datetime.datetime.utcfromtimestamp(timeStamp) otherStyleTime=dateArray.strftime("%Y--%m--%d%H:%M:%S") print(otherStyleTime)#2019--05--0707:08:28

Datetime

datatime模块是在time模块的基础之上做了封装,提供了更多更好用的类供我们使用,常用的有date、time、datetime、timedelta、tzinfo。但是为了更灵活的处理时间,最好是将time模块和datetime模块中的精髓学习到。

date类

date类:主要用于处理年、月、日。

date类的构造函数如下:datetime.date(year, month, day)

示例:

fromdatetimeimportdate d=date(1999,9,29) print(d) print('year:',d.year) print('month:',d.month) print('day:',d.day)

具体输出:

1999-09-29 year:1999 month:9 day:29

time类

time类:主要用于处理小时、分钟、秒。

time类的构造函数如下:datetime.time(hour[,minute[,second[,microsecond[,tzinfo]]]])

示例:

fromdatetimeimporttime t=time(22,45,59) print(t) print('hour:',t.hour) print('minute:',t.minute) print('second:',t.second) print('microsecond:',t.microsecond)#微秒 print('格式化输出:',t.strftime('%H:%M:%S')) print('Earliest:',datetime.time.min) print('Latest:',datetime.time.max)

输出:

22:45:59 hour:22 minute:45 second:59 microsecond:0 格式化输出:22:45:59 Earliest:00:00:00 Latest:23:59:59.999999

datetime子类

datetime子类是date对象和time对象的结合体,是datetime的子类,和它的方法很类似。

它的构造函数如下:

datetime.datetime(year,month,day[,hour[,minute[,second[,microsecond[,tzinfo]]]]]),

各参数的含义与date、time的构造函数中的一样,要注意参数值的范围。

「获取当前日期和时间」

>>>fromdatetimeimportdatetime >>>now=datetime.now()#获取当前datetime >>>print(now) 2019-05-0716:28:07.198690 >>>print(type(now)) <class'datetime.datetime'>

timedelta类

timedelta类是用来计算二个datetime对象的差值的。可以进行加减乘除运算的,它的实例化方法和datetime对象很类似 此类中包含如下属性:

两个date或datetime对象相减就可以返回一个timedelta对象。

importdatetimeasdt date1=dt.date(2020,10,28) timedel=dt.timedelta(days=4) print('四天后的日期是:',date1 timedel) 四天后的日期是:2020-11-01

本文已收录 GitHub,传送门~[1] ,里面更有大厂面试完整考点,欢迎 Star。

Reference

[1]

传送门~: https://github.com/MaoliRUNsen/runsenlearnpy100

,