python中时间的表现形式(时间戳,元组,字符串),datetime,日历模块

UTC:(世界协调时间)
DST:(夏令时)

时间的表现形式:

  • 1.时间戳
    以整型或浮点型 表示以秒为单位的时间间隔,这个时间间隔的基础值是从1970年1月1日开始算起

  • 2.元组
    一种python的数据结构表示,这个元组有9个整型内容
    year
    month
    hour
    seconds
    minute
    weekday
    Julia day
    DST
    flag(1或-1或0)

  • 3.格式化字符串
    %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 当前时区的名称
    %% %号本身

转化代码公式图:
python中时间的表现形式(时间戳,元组,字符串),datetime,日历模块

import time

#返回当前时间的时间戳,浮点数形式,不需要参数
c = time.time()
print(c)

#将时间戳转为UTC时间元组
t = time.gmtime(c)
print(t)

#将时间戳转为本地时间元组
b = time.localtime(c)
print(b)

#将本地时间转为时间戳
m = time.mktime(b)
print(m)

#将时间元组转为字符串
s = time.asctime(b)
print(s)

#将时间戳转为字符串
p = time.ctime(c)
print(p)

#将时间元组转换成给定格式的字符串,参数2为时间元组,如果没有参数2默认转当前时间
#q = time.strftime("%Y-%m-%d %H:%M:%S", b)
q = time.strftime("%Y-%m-%d %X", b)
print(q)

#将时间字符串转为时间元组
w = time.strptime(q, "%Y-%m-%d %X")
print(w)
#延迟一个时间,整型或浮点型
time.sleep(4)

返回当前程序的cpu执行时间
(unix形同始终返回全部的运行时间;windows从第二次开始,都是以第一个调用此函数的开始时间戳作为基数)

注意:python 3.7 中用time.process_time获取cpu执行时间

y1 = time.process_time()
print("%d" % y1)  #返回整数
time.sleep(2)
y2 = time.process_time()  
print(y2)

性能测试

import time

time.process_time()
sum = 0

for i in range(100000000):
    sum += i

print(time.process_time())

datetime
datetime比time高级了不少,可以理解为datetime基于time进行了封装,提供了各位使用的函数,datetime模块的接口(API/函数)更直观,更容易调用。

  • 模块中的类:
模块中的类 功能
datetime 同时有时间和日期
timedelta 主要用于计算时间的跨度
tzinfo 时区相关
time 只关注时间
date 只关注日期
  • datetime模块
from datetime import datetime

#获取当前时间
d1 = datetime.now
print(d1)
print(type(d1))


#获取指定时间
d2 = datetime(1999, 10, 1, 10, 28, 25, 123456)
print(d2)


#将时间转为字符串
#d3 = d1.strftime("%y-%m-%d %X")
#print(d3)
#print(type(d3))


#将格式化字符串转为datetime
#d4 = datetime.strptime(d3,"%y-%m-%d %X")
#print(d4)

#计算时间差
d5 = datetime(1999, 10, 1, 10, 28, 25, 123456)
d6 = datetime.now()
d7 = d6 -d5
print(d7)


#间隔的天数
print(d7.days)


#间隔天数除外的秒数
print(d7.seconds)
  • 日历模块
import calendar
返回指定某年某月的日历
print(calendar.month(2017, 7))
返回指定年的日历
print(calendar.calendar(2017))
闰年返回true,否则false
print(calendar.isleap(2000))
返回某月的weekday的第一天和这个月天数
print(calendar.monthrange(2017,6))
返回某月以每一周为元素的列表
print(calendar.monthcalendar(2017, 7))