Python模块之时间模块学习笔记

目录

一、time模块

1、当前时间浮点数  time()

2、时间元组 localtime()  

3、时间字符串  

4、格式化字符串time类 strftime 方法

5、字符串时间转时间元组   strptime()

6、常用的时间格式

二、datetime模块 

1、date

(1)打印当前日期

(2)当前日期字符串

(3)字符日期转日期

2、datetime

(1)打印当前时间

(2)当前时间转字符串显示

(3)当前时间转字符串显示

3、timedelta


python与时间处理相关的模块有两个: time模块和datetime模块。

time模块提供两种时间表达方式(假定一个零点基准,偏移长度换算为按秒的数值型和由 9 个整数组成的元组 struct_time 表示的时间), 前面这种一般在测试函数的执行时长时候用到, 后者比较常用。

datetime模块, 常用类4个(date, time, datetime, timedelta)

一、time模块

使用之前, 要导入时间模块import time

时间表示的几种类型

- 时间戳:time.time()

- 字符串的时间:ime.ctime()

- 元组类型的时间:time.localtime()

time模块提供了时间相关的类和函数。 常用的就是一个类struct_time, 这里面有表示时间的9个整数组成的元组。

关于time模块, 常用的是下面的5个函数:

1、当前时间浮点数  time()

second = time.time()    
>>>1592451544.5129032

2、时间元组 localtime()  

这个函数可以把上面的这种浮点转成struct_time

s=time.time()
local_time = time.localtime(s) #将时间戳转换为时间元组
#等同于local_time = time.localtime()

>>>time.struct_time(tm_year=2020, tm_mon=6, tm_mday=18, tm_hour=10, tm_min=21, tm_sec=56, tm_wday=3, tm_yday=170, tm_isdst=0)

local_time   # 这里面就可以通过相应的属性名获取相应的属性, tm_wday表示周几, tm_yday表示一年的第多少天。

3、时间字符串  

time 类 asctime 方法,转换 struct_time 为时间字符串

str_time = time.asctime(local_time)
>>>'Thu Jun 18 10:21:56 2020'

4、格式化字符串time类 strftime 方法

按照时间格式要求,格式化 struct_time 为时间字符串

format_time = time.strftime('%Y-%m-%d %H:%M:%S', local_time)
>>>'2020-06-18 10:21:56'

5、字符串时间转时间元组   strptime()

str_to_struct = time.strptime(format_time, '%Y-%m-%d %H:%M:%S')  
# 注意:第二个参数的时间格式,要匹配上第一个参数的时间格式。

6、常用的时间格式

Python模块之时间模块学习笔记

二、datetime模块 

datetime模块里面有四个常用类, date, datetime, time, timedelta。

date: 日期类, 包括属性年月日及相关方法

time: 时间类, 包括属性时分秒及相关方法

datetime: 日期时间,继承于 date,包括属性年、月、日、时、分、秒等及相关方法,其中年月日必须参数

timedelta: 两个 datetime 值的差,比如相差几天(days)、几小时(hours)、几分(minutes)等

首先依然是先导入:from datetime import date, time, datetime, timedelta

1、date

date表示日期, 能用的无非是打印当前日期, 当前日期转成格式字符串, 然后再变回去, 方法和上面time模块里面的差不多。

(1)打印当前日期

tod = date.today()
>>>datetime.date(2020, 6, 18)

(2)当前日期字符串

str_date = date.strftime(tod, '%Y-%m-%d')
>>>'2020-06-18'

(3)字符日期转日期

# date 类里没有 strptime 方法,它的子类 datetime 才有解析字符串日期的方法 strptime。

str_to_date = datetime.strptime('2020-02-22', '%Y-%m-%d')
>>>datetime.datetime(2020, 2, 22, 0, 0)

2、datetime

这个类继承于date, 并且在日期的基础上加上了time。 常用的依然是获取当前时间, 当前时间格式化, 然后再变回去。

(1)打印当前时间

right = datetime.now()
>>>datetime.datetime(2020, 6, 18, 10, 31, 43, 759828)

(2)当前时间转字符串显示

str_time = datetime.strftime(right, '%Y-%m-%d %H:%M:%S')

>>>'2020-06-18 10:31:43'

(3)当前时间转字符串显示

str_time = datetime.strftime(right, '%Y-%m-%d %H:%M:%S')
>>>datetime.datetime(2020, 6, 18, 10, 31, 43)

3、timedelta

求两个 datetime 类型值的差,返回差几天:days,差几小时:hours 等. 相减的两个时间,不能一个为 date 类型,一个为 datetime 类型,尽管两个类型是父子关系。d1 = datetime.today()

d2 = d1 - timedelta(hours=10)

print(d1, d2)  # 2020-06-18 11:08:26.659060 2020-06-18 01:08:26.659060

这个在时间序列的数据处理上也是非常常用的, 和pandas的pd.DateOffset类似, 可以计算时间差, 尤其是做滞后特征的时候。

上一篇:CentOS7常用环境设置


下一篇:Python的日期时间(datetime)