第九章 时间

目录

一、基本概念

二、time模块

2.1 时间元组

 2.2 常用函数

 2.2.1 time.time():返回当前时间的时间戳

2.2.2 time.localtime([secs]):将一个时间戳转换为当前时区的struct_time,即时间元组格式的时间

2.2.3 time.gmtime([secs]):将一个时间戳转换为UTC时区(0时区)的struct_time

2.2.4 time.mktime():将一个struct_time转化为时间戳

 2.2.5 time.sleep():睡眠函数

2.2.6 time.clock():睡眠函数,python 3.8之后clock()被移除了,可以使用time.perf_counter()或time.process_time()

2.2.6 time.strftime()返回字符串表示的当地时间 

2.2.7 time.strptime():将格式字符串转化成struct_time

三、datetime模块

3.1 引入datetime模块

3.2 datetime模块常用类

3.3 date类常用方法

3.3.1 date.today():返回一个表示当前本地今天日期的date对象

3.3.2 date.fromtimestamp():根据给定的时间戳timestamp,返回一个date对象

3.3.3 date.weekday():返回weekday中的星期几

3.3.4 date.isoweekday():返回weekday中的星期几

3.3.5 date.isocalendar():返回时间对象的year/week/weekday(工作日)

3.3.6 date.strftime(fmt):返回自定义的格式时间字符串

3.3.7 日期加上一个时间间隔

3.3.8 日期减去一个时间间隔

3.3.9 两个日期相减

3.3.10 比较日期大小

3.4 time类

3.4.1 time类的属性-hour、minute、second、 microsecond 

3.4.2 time.replace():用给的的参数时分秒替换原有对象中的属性

3.4.3 time.isoformat():返回格式如:HH:MM:SS的时间字符串

3.4.4 time.strftime():返回自定义格式时间字符串

3.5 datetime类

3.5.1 datetime.today():返回当前本地时间的datetime对象

3.5.2 datetime.now(tz):返回当前本地时间的datetime对象

3.5.3 datetime.fromtimestamp(timestamp[,tz]):根据时间戳创建一个datetime对象

3.5.4 datetime.strptime():将格式时间字符串转换成datetime对象

3.5.5  datetime类的属性-year、month、day、hour、minute、second

3.5.6 datetime.date():获取时间中的日期对象date

3.5.7 datetime.time():获取时间中的时间对象time

3.5.8 datetime.combine(date,time):根据date和time创建datetime对象

3.5.9 datetime.replace():替换原有时间,获得新的日期时间

3.5.10 mktime():将datetime对象转换成时间戳

3.5.11 datetime.weekday(time):返回一周中的星期几

3.5.12 datetime.isocaendar(time):以元组形式返回年月日

3.5.13  datetime.strftime(format):返回自定义的格式时间字符串 

3.6 timedelta类

3.6.1 两个日期的时间相减

3.6.2 日期或时间加上或减去一个时间间隔

 3.6.3  timedelta.total_seconds():获取总秒数

四、calendar模块

4.1 常用属性

4.1.1 calendar.day_name:星期的全称

4.1.2 calendar.day_abbr:星期的简称

4.1.3 calendar.month_name:月的全称

4.1.4 calendar.month_abbr:月的简称

4.2 常用方法

4.2.1 calendar.isleap(year):判断是否为闰年

4.2.2 calendar.month(year,month,w=2,I=1):返回指定年的某月

4.2.3 calendar.calenda(year,w=2,I=1,c=6):返回指定年的日历

4.2.4 calendar.HTMLCalendar():返回指定年的日历,html格式


一、基本概念

在python中与时间处理相关的模块有:time、datatime和calender

在python中表示时间的方式有:时间戳、格式化的时间字符串、元组(struct_time共9种元素)。由于time模块主要是调用c库实现的,所以在不同的平台可能会不同。

  • 时间戳(timestamp):表示从1970年1月1号00:00:00开始到现在按秒计算的偏移量。tick单位(系统的相对时间,间隔以秒为单位的浮点数)最适合做日期运算。但是1970年之前的时间无法表示,UNIX和win都只支持到2038年某日。 type(time.time())返回的是float类型,返回时间戳的函数主要有time()、clock()
  • UTC(世界协调时),就是格林威治天文时间。在中国为UTC+8,DST夏令时。
  • 元组方式:struct_time共有9个元素,返回struct_time的函数主要有gmtime()、localtime()、strptime()

二、time模块

2.1 时间元组

序号

属性

说明

1

tm_year

2008

4位数的年份

2

tm_mon

1-12

月份

3

tm_mday

1-31

4

tm_hour

0-23

5

tm_min

0-59

分钟

6

tm_sec

0-61(60或61是闰秒)

7

tm_wday

0-6(0是周一)

一周的第几天

8

tm_yday

1-366(日历)

一年的第几天

9

tm_isdst

-1,0,1

其中-1是决定是否为夏令时

 本地时间

#encoding=utf-8
import time
ls = time.localtime()
print(ls) # 时间元组
# 直接使用元组索引获取对应项的值
print("year:",ls[0])
print("month:",ls[1])
print("day:",ls[2])

#使用成员符号调用
print("year:",ls.tm_year)
print("month:",ls.tm_mon)
print("day:",ls.tm_mday)

 

格林威治时间

import time
ls = time.gmtime()
print(ls)

  

 2.2 常用函数

 2.2.1 time.time():返回当前时间的时间戳

>>> import time
>>> print(time.time())#表示当前时间距离1970年1月1日的秒数
1651716585.707484
>>> #对时间戳取整
>>> print(int(time.time()))
1651716586

2.2.2 time.localtime([secs]):将一个时间戳转换为当前时区的struct_time,即时间元组格式的时间

sec -- 转换为time.struct_time类型的对象的秒数。如果secs参数未提供,则以当前时间为准(即会默认调用time.time()

#未给定参数,默认会调用time.time()
>>> time.localtime()
time.struct_time(tm_year=2022, tm_mon=5, tm_mday=5, tm_hour=10, tm_min=12, tm_sec=21, tm_wday=3, tm_yday=125, tm_isdst=0)
>>> time.localtime(1440337405.85)
#给定参数
>>> time.localtime(1440337405.85)
time.struct_time(tm_year=2015, tm_mon=8, tm_mday=23, tm_hour=21, tm_min=43, tm_sec=25, tm_wday=6, tm_yday=235, tm_isdst=0)

2.2.3 time.gmtime([secs]):将一个时间戳转换为UTC时区(0时区)的struct_time

参数secs--表示从1970-1-1 00:00:00以来的秒数。其默认值为time.time()

>>> time.gmtime()
time.struct_time(tm_year=2022, tm_mon=5, tm_mday=5, tm_hour=2, tm_min=19, tm_sec=19, tm_wday=3, tm_yday=125, tm_isdst=0)
>>> time.gmtime(123456.80)
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=2, tm_hour=10, tm_min=17, tm_sec=36, tm_wday=4, tm_yday=2, tm_isdst=0)

2.2.4 time.mktime():将一个struct_time转化为时间戳

➢ time.mktime() 函数执行与gmtime(), localtime()相反的操作,它接收struct_time对象作为参数,返回用秒数表示时间的浮点数。
➢ 参数:t -- 结构化的时间或者完整的9位元组元素。 如果输入的值不是一个合法的时间,将触发 OverflowError 或 ValueError

>>> struct_time = time.localtime()
>>> struct_time
time.struct_time(tm_year=2022, tm_mon=5, tm_mday=5, tm_hour=10, tm_min=22, tm_sec=42, tm_wday=3, tm_yday=125, tm_isdst=0)
>>> time.mktime(struct_time)
1651717362.0

 2.2.5 time.sleep():睡眠函数

单位为秒

time.sleep(10)#睡眠10秒钟

2.2.6 time.clock():睡眠函数,python 3.8之后clock()被移除了,可以使用time.perf_counter()或time.process_time()

以浮点数计算的秒数返回当前的CPU时间,用来衡量不同程序的耗时, 比time.time()更有用.返回的是当前处理器时间作为Unix上以秒为单位的浮点数。记的是CPU耗时,当前python进程在CPU上花费的时间

perf_counter()会包含sleep()休眠时间,适用测量短持续时间

process_time()不包括sleep()休眠时间期间经过的时间

import time
def procedure() :
	time.sleep(5)

time1 = time.perf_counter()
procedure()
print (time.perf_counter() - time1, "seconds process time!")

#使用time.time()来计算程序耗时
time2 = time.time()
procedure()
print (time.time() - time2, "seconds!")

2.2.6 time.strftime()返回字符串表示的当地时间 

把一个代表时间的元组或者struc_time(如由time.localtime()或time.gmtime()返回)转化为格式化的时间字符串,格式由参数format决定;没有指定的话,将传入time.localtime();如果元组中任何一个元素越界会跑出ValueError异常;函数返回的是一个可读表示的本地时间字符串。

命令格式:time.strftime(format,[t])

参数说明:format--是一个格式化字符串

                  t:可选的参数,是一个struc_time对象

  • 时间字符串的格式化符号:

符号

说明(区分大小写)

%a

本地星期名称的简写(如星期四为Thu)

%A

本地星期名称的全称(如星期四为Thursday)

%b

本地月份名称的简写(如八月份为agu)

%B

本地月份名称的全称(如八月份为aguust)

%c

本地相应的日期和时间的字符串表示(如:15/08/27 10:20:06)

%d

一个月中的第几天(01-31)

%H

一天中的第几个小时(24小时制,00-23)

%I

第几个小时(12小时制,0 -11)

%j

一年中的第几天(001 -366)

%m

月份(01-12)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值