Python入门进阶教程-时间序列
作者:一叶
介绍:放不下灵魂的搬砖者
全文共1943字,阅读全文需9分钟
Python版本3.8.0,开发工具:Pycharm
时间戳:(timestamp)时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数
时间元组:(struct_time)时间元组是用一个元组装起来的9组数字处理时间
日期字符串:一串显示日期的字符串(注意是字符串,不是时间)
2# 时间戳
31574851524.1845107
4# 时间元组
5本地时间为 : time.struct_time(tm_year=2019, tm_mon=11, tm_mday=27, tm_hour=18, tm_min=45, tm_sec=24, tm_wday=2, tm_yday=331, tm_isdst=0)
6# 日期字符串
72019-11-27 18:45:24
time:处理时间的模块,如获取时间戳,格式化日期等 datetime:date 和time 的结合体,处理日期和时间 calendar:日历相关的模块,如:处理年历/月历
01
—
datetime 模块
datetime 以毫秒形式存储日期和时间。
2now = datetime.now()
3print(now)
4# 可以输出当前时间的年月日
5print('year: {0}, month: {1}, day: {2}'.format(now.year, now.month, now.day))
6
7# 输出
82019-11-27 18:45:24.184510
9year: 2019, month: 11, day: 27
datetime.timedelta 表示两个datetime 对象之间时间差
1from datetime import timedelta
2
3start = datetime.now()
4# 输出昨天的日期
5new_time = start+timedelta(-1)
6print(new_time)
7
8# 输出
92019-11-26 18:45:24.184510
类型 | 说明 |
---|---|
date | 以公历形式存储日历日期(年、月、日) |
time | 将时间存储为时、分、秒、毫秒 |
datetime | 存储日期和时间 |
timedelta | 表示两个datetime 值之间的查(日、秒、毫秒) |
时间戳 -> datetime 时间格式 -> 日期字符串
2timestamp = time.time()
3# 时间戳timestamp 转datetime时间格式
4datetime_time = datetime.fromtimestamp(timestamp)
5# datetime时间格式转为日期字符串
6datetime_str = datetime_time.strftime("%Y-%m-%d %H:%M:%S")
7print(datetime_str)
8
9# 输出
102019-11-27 18:53:03
日期字符串 -> datetime 时间格式 -> 时间戳
1# 定义日期字符串
2datetime_str = '2019-11-30 00:00:01'
3# 日期字符串转为datetime时间格式
4datetime_time = datetime.strptime(datetime_str, '%Y-%m-%d %H:%M:%S')
5# datetime时间格式转为时间戳
6datetime_timestamp = time.mktime(datetime_time.timetuple())
7print(datetime_timestamp)
8
9# 输出
101575043201.0
常用的基本操作为字符串转日期和日期转字符串,即以上转换的后半节和前半节
注意strftime 函数和strptime 函数的用法
02
—
time 模块
了解time模块之前需要先知道什么是时间元组,元组大家都知道,不记得可以点击 Python入门基础教程-数据类型 查看元组类型。 时间元组也就和它字面意思一样,存的是时间。
序号 | 属性 | 值 |
---|---|---|
0 | tm_year | 2008 |
1 | tm_mon | 1 到 12 |
2 | tm_mday | 1 到 31 |
3 | tm_hour | 0 到 23 |
4 | tm_min | 0 到 59 |
5 | tm_sec | 0 到 61 (60或61 是闰秒) |
6 | tm_wday | 0到6 (0是周一) |
7 | tm_yday | 一年中的第几天,1 到 366 |
8 | tm_isdst | 是否为夏令时,值有:1(夏令时)、0(不是夏令时)、-1(未知),默认 -1 |
2
3localtime = time.localtime(time.time())
4print("本地时间为 :", localtime)
5
6# 输出
7本地时间为 : time.struct_time(tm_year=2019, tm_mon=11, tm_mday=27, tm_hour=18, tm_min=56, tm_sec=3, tm_wday=2, tm_yday=331, tm_isdst=0)
时间戳 -> 时间元组 -> 日期字符串
2timestamp = time.time()
3# 时间戳timestamp 转时间元组
4time_tuple = time.localtime(timestamp)
5# 时间元组转为日期字符串
6time_str = time.strftime("%Y-%m-%d %H:%M:%S", time_tuple)
7print(time_str)
8
9# 输出
102019-11-27 18:56:03
日期字符串 -> 时间元组 -> 时间戳
2time_str = '2019-11-30 00:00:01'
3# 日期字符串转为时间元组
4time_tuple = time.strptime("2019-11-30 00:00:01", "%Y-%m-%d %H:%M:%S")
5# 时间元组转为时间戳
6timestamp = time.mktime(time_tuple)
7print(timestamp)
8
9# 输出
101575043201.0
strftime 函数是将时间元组转换为日期字符串 strptime 函数是将字符串转换为时间元组
03
—
calendar 模块
calendar模块的函数都是与日历相关的,比如打印某个月的日历等
1import calendar
2
3# 判断2019年是不是闰年
4print(calendar.isleap(2019))
5# 打印2019年11月的日历
6print(calendar.month(2019, 11))
7# 返回2019年11月15号是星期几(0是星期一,依次类推)
8print(calendar.weekday(2019, 11, 15))
9
10# 输出
11False
12
13 November 2019
14Mo Tu We Th Fr Sa Su
15 1 2 3
16 4 5 6 7 8 9 10
1711 12 13 14 15 16 17
1818 19 20 21 22 23 24
1925 26 27 28 29 30
20
214
对于datetime、time 和calendar 三个时间模块,重点掌握datetime 模块,且datetime 模块中重点掌握字符串和日期的互相转换。
下节将介绍Python 数据库操作
Python系列
Python系列会持续更新,从基础入门到进阶技巧,从编程语法到项目实战。若您在阅读的过程中发现文章存在错误,烦请指正,非常感谢;若您在阅读的过程中能有所收获,欢迎一起分享交流。
如果你也想和我一起学习Python,关注我吧!
学习Python,我们不只是说说而已
End
限时领取,100G+数据分析干货资料免费领Python入门进阶教程-JSON操作
Python入门进阶教程-多线程与多进程
Python入门进阶教程-正则表达式
Python入门进阶教程-面向对象
Python入门基础教程-补充
Python入门基础汇总