Python基础08-时间日历

Python基础-时间日历

1. time 模块

  • 提供 处理时间 和 展示时间 之间转换的功能

1.1 获取当前时间戳

  • 时间戳:从0逝去的1970年1月1日0时0分0秒,到所给定日期时间的秒数
  • 时间戳是一个 浮点数
  • 获取方式
import time
time.time() 

1.2 获取时间元组

  • 一般python时间函数将时间处理为9个数字的元祖
  • 图解
序号 含义 属性
0 4位数 年 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是决定是否是夏令时的标记
  • 获取方式
import time
time.localtime([seconds])
* seconds 可选的时间戳,默认值为当前时间戳

print(localtime())
>>> time.struct_time(tm_year=2018, tm_mon=5, tm_mday=6, tm_hour=19, tm_min=25, tm_sec=34, tm_wday=6, tm_yday=126, tm_isdst=0)

1.3 获取格式化的时间

  • 秒 -> 可读时间
    1525606536.934186 转为 Sun May 6 19:35:15 2018
import time
time.ctime([seconds])

eg.
t = time.time()
result = time.ctime(t)
print(result)
>>> Sun May  6 19:35:15 2018
  • 时间元组 -> 可读时间
    time.struct_time(tm_year=2018, tm_mon=5, tm_mday=6, tm_hour=19, tm_min=38, tm_sec=20, tm_wday=6, tm_yday=126, tm_isdst=0) 转为 Sun May 6 19:35:15 2018
import time
time.asctime([p_tuple])
* p_tuple:可选的时间元组,默认当前时间元组

time_tuple = time.localtime()
result = time.asctime(time_tuple)
print(result)
>>> Sun May  6 19:38:20 2018

1.4 格式化日期字符串 < -- > 时间戳

  • 时间元组 -> 格式化日期
  • time.strftime(格式字符串,时间元组):sting + format + time
time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
>>> 2017-09-02 17:21:00
  • 格式化日期 -> 时间元组
  • time.strptime()
pt = time.strptime("17-09-06 08:57:17", "%y-%m-%d %H:%M:%S")
  • 时间元组 -> 时间戳
  • time.mktime
t = time.mktime(pt)
  • 常用格式符
格式符 表达
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称

1.5 获取当前 CPU 时间

  • time.clock(),返回浮点数的秒数
  • 一般用于统计代码执行时间
start = time.clock()
for i in range(0, 10000):
  print(i)
end = time.clock()
print(end - start)

1.6 休眠 n 秒

  • 推迟线程的执行,可简单理解为,让程序暂停
  • time.sleep(secs)
while True:
     result = time.strftime("%y===%m-%d %H:%M:%S", time.localtime())
     print(result)
     time.sleep(1)

2. calendar 模块

  • 提供与日历相关功能,如:为给定的月份或年份,打印文本日历

2.1 获取某月日历

import calendar
c = calendar.month(2018, 5)
print(c)

>>>

      May 2018
Mo Tu We Th Fr Sa Su
    1  2  3  4  5  6
 7  8  9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

3. datetime 模块

  • python 处理日期和时间的标准库
  • 常用 datetime 类,及 date 类 和 time 类
  • 可做计算之类的操作

3.1 获取当天日期

import datetime
n = datetime.datetime.now()
t = datetime.datetime.today()
print(n)
print(t)

3.2 单独获取当前的年月日时分秒

import datetime
t = datetime.datetime.today()

print(type(t))

print(t.year)
print(t.month)
print(t.day)
print(t.hour)
print(t.minute)
print(t.second)

3.3 计算 n 天之后的日期

import datetime

t = datetime.datetime.today()
result = t + datetime.timedelta(days=7)
print(t, result)

3.4 获取两个日期时间的时间差

import datetime
first = datetime.datetime(2017, 9, 2, 12, 00, 00)
second = datetime.datetime(2017, 9, 3, 12, 00, 00)
# print(first, type(first))

delta = second - first
print(delta, type(delta)) 
print(delta.total_seconds())

>>>

1 day, 0:00:00 
86400.0

你可能感兴趣的:(Python基础08-时间日历)