作者:一叶
介绍:放不下灵魂的搬砖者
全文共1943字,阅读全文需9分钟
Python版本3.8.0,开发工具:Pycharm
时间模块需要了解的三个概念:时间戳、时间元组、日期字符串
1# 注:同一时间的三种不同显示方式
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
Python 标准库包含用于日期(date)和时间(time)数据的数据类型,而且还有日历方面的功能。
在做数据分析的过程中,我们主要会用到datetime、time 以及calendar 模块,其中datetime 是用的最多的。
01
—
datetime 以毫秒形式存储日期和时间。
1from datetime import 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 对象之间时间差
from datetime import timedelta
start = datetime.now()
# 输出昨天的日期
new_time = start+timedelta(-1)
print(new_time)
# 输出
2019-11-26 18:45:24.184510
datetime 模块中的数据类型
类型 | 说明 |
---|---|
date | 以公历形式存储日历日期(年、月、日) |
time | 将时间存储为时、分、秒、毫秒 |
datetime | 存储日期和时间 |
timedelta | 表示两个datetime 值之间的查(日、秒、毫秒) |
datetiem 模块时间戳和字符串的互转必须通过datetime 时间格式进行过渡
1# 获取当前时间戳
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
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
注:
02
—
了解time模块之前需要先知道什么是时间元组,元组大家都知道,不记得可以点击 Python入门基础教程-数据类型 查看元组类型。 时间元组也就和它字面意思一样,存的是时间。
时间元组struct_time结构属性
序号 | 属性 | 值 |
---|---|---|
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 |
1import time
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)
time 模块时间戳和字符串的互转也必须通过时间元组进行过渡
1# 获取当前时间戳
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
1# 定义日期字符串
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
注:
03
—
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,我们不只是说说而已
End