python常用数据类型--时间日历
一.Python程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能。
二.常用操作:time模块,calendar模块,datetime模块
1. time模块
什么是时间戳?
时间戳:从0时区1970年1月1日0时0分0秒,到所给定日期时间的秒数。(浮点数)
(1)获取当前时间戳
获取方式:
import time (导入模块) time.time() |
import time
times = time.time() print(times) # 1527690960.7093856 # 打印1970到现在的年数 print(times / 24 / 60 / 60 / 365) # 48.44276509839056 |
(2)获取时间元组
概念:很多python时间函数将时间处理为9个数字的元组。
获取方式:
import time time.localtime([seconds]):seconds可选的时间戳,否则默认当前的时间戳。 |
【范例】利用time.localtime([seconds])获取时间元组。
import time
now_time = time.localtime() print(now_time) # time.struct_time(tm_year=2018, tm_mon=6, tm_mday=1, tm_hour=21, tm_min=9, tm_sec=36, tm_wday=4, tm_yday=152, tm_isdst=0) |
(3)获取格式化时间
秒 -> 可读时间:
import time time.ctime([seconds]):可选的时间戳,默认当前时间戳 |
【范例】格式化当前时间。
import time
t = time.time() print(t) # 1527858885.4739273 print(time.ctime(t)) # Fri Jun 1 21:14:45 2018 |
时间元组 -> 可读时间:
import time time.asctime([p_tuple]):可选的时间元组,默认当前时间元组 |
【范例】格式化时间元组。
import time
time_tuple = time.localtime() print(time.asctime(time_tuple)) # Fri Jun 1 21:15:47 2018 |
(4)格式化日期字符串 < -- > 时间戳
时间元组 - > 格式化日期
time.strftime(格式字符串,时间元组) |
【范例】以%Y-%m-%d %H:%M:%S格式输出年月日时分秒。
import time
now_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) print(now_time) # 2018-06-01 21:20:34 |
格式化日期 - > 时间元组
time.strptime(日期字符串,格式符字符串) time.mktime(时间元组) |
【范例】将已格式化的日期重新转化成时间元组,并转换成时间戳。
import time
# 将已格式化的日期重新转化成时间元组 now_time = time.strptime("2018-06-01 21:20:34", "%Y-%m-%d %H:%M:%S") print(now_time) # time.struct_time(tm_year=2018, tm_mon=6, tm_mday=1, tm_hour=21, tm_min=20, tm_sec=34, tm_wday=4, tm_yday=152, tm_isdst=-1) # 将时间元组转换成时间戳 t = time.mktime(now_time) print(t) # 1527859234.0 |
(5)获取当前CPU时间
time.clock():浮点数的秒数 可以用来统计一段程序代码的执行耗时 |
【范例】统计一段程序执行时间。
import time
start = time.clock() for i in range(0, 100): print(i)
end = time.clock() print(end - start) # 0.0007913316849822489 |
(6)休眠n秒:推迟线程的执行,简单理解为让程序暂停。
【范例】每隔1秒打印一个数。
import time
i = 0 while i < 4: print(i) time.sleep(1) i += 1 |
2. calendar模块:提供与日历相关的功能,比如:给定值的月份或年份打印文本日历的功能。
(1)提供与日历相关的功能,比如:为给定的月份或年份打印文本日历的功能。
(2)获取某月日历:
import calendar calendar.month(2018,6) |
【范例】查看2018年6月的日历。
import calendar
print(calendar.month(2018, 6)) |
运行结果:

3. datetime模块:python处理日期和时间的标准库。可以做一些计算之类的操作。
(1)获取当天日期
import datetime print(datetime.datetime.now()) print(datetime.datetime.today()) |
【范例】获取当天日期。
import datetime
print(datetime.datetime.now()) # 2018-06-01 21:41:13.677463 print(datetime.datetime.today()) # 2018-06-01 21:41:13.677464 |
(2)单独获取当前的年月日时分秒
【范例】获取当前日期的年月日,时分秒。
import datetime
t = datetime.datetime.now() print(t.year) # 2018 print(t.month) # 6 print(t.day) # 1 print(t.hour) # 21 print(t.minute) # 34 print(t.second) # 54 |
(3)计算两个日期的天数差
(4)获取两个日期时间的时间差
【范例】获取9月1日12点到9月2日12点的时间差(秒)。
import datetime
begin = datetime.datetime(2017, 9, 1, 12, 0, 0) end = datetime.datetime(2017, 9, 2, 12, 0, 0) delta = end - begin print(delta.total_seconds()) # 86400.0 |
(5)计算n天后的日期
【范例】输出7天后的日期。
import datetime
t = datetime.datetime.now() print(t + datetime.timedelta(days=7)) # 2018-06-08 21:46:03.101965 |