从0开始学Python(七、关于时间的模块的详解)

从0开始学Python(七、关于时间的模块的详解),第1张

从0开始学Python(七、关于时间的模块的详解)

目录
    • 1.time模块
      • 1.1struct_time类
      • 1.2常用函数
      • 1.3strftime()函数的使用说明
    • 2.datetime模块
      • 2.1date类
      • 2.2time类
      • 2.3datetime类

1.time模块

time模块提供了很多与时间相关的类和函数,下面我会介绍一些经常用到的。

1.1struct_time类

time模块的struct_time类代表一个时间对象,可以通过访问索引和属性名访问数值。对应的关系如下图所示:

索引属性数值0tm_year(年)19211tm_mon(月)1 - 122tm_mday(日)1 - 313tm_hour(小时)0 - 234tm_min(分)0 - 595tm_sec(秒)0 - 606tm_wday(周)0 - 67tm_yday(一年内的第几天)1 - 3668tm_isdst(夏时令)-1、0、1

localtime()表示当前时间,返回类型为struct_time对象,用法如下:

import time
t = time.localtime()
print(f'当前时间为{t}')
print(f'现在是{t.tm_year}年,{t.tm_mon}月{t.tm_mday}日。')

输出:

当前时间为time.struct_time(tm_year=2021, tm_mon=12, tm_mday=20, tm_hour=14, tm_min=49, tm_sec=52, tm_wday=0, tm_yday=354, tm_isdst=0)
现在是2021年,12月20日。
1.2常用函数 函数描述time()返回当前时间的时间戳gmtime(secs)将时间戳转换为格林威治天文时间下的struct_time,可选参数seces表示从epoch到现在的描述,默认为当前时间localtime(secs)与gmtime()类似,返回当地时间的struct_timemktime(t)localtime()的反函数asctime(t)接受一个struct_time表示的时间,返回的形式为:Mon Dec 3 09 11:53:02 202 的字符串ctime(secs)ctime(secs)相当于asctime(localtime(secs))

epoch: 1970-01-01 00:00:00 UTC

1.3strftime()函数的使用说明 符号描述%a本地化的缩写型其中每日的名称%b本地化的月的缩写名称%c本地化的日期和时间表示%d十进制表示的月中的日%H十进制表示的小时(24小时制)%l十进制表示的小时(12小时制)%m十进制表示的月%M十进制表示的分钟%S十进制表示的秒%Y十进制表示的带世纪的年份%Z时区名称

用法如下:

import time
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()))

输出:

2021-12-20 15:02:39
2.datetime模块

datetime模块重新封装了time模块,提供了更多的接口,变得更加直观和易于调用。

2.1date类

date类表示一个由年、月、日组成的日期,格式为datetime.date(year, month, day)。

方法如下:

方法说明today()返回当地的当前时间mindate所能表示的最小日期maxdate所能表示的最大日期

用法如下:

import datetime
print(datetime.date.today())
print(datetime.date.min)
print(datetime.date.max)

输出:

2021-12-20
0001-01-01
9999-12-31

一些方法和属性如下所示:

方法描述replace(year,month,day)生成一个新的日期对象,用参数指定的年、月、日代替原有对象中的属性timetuple()返回日期对应的struct_time对象weekday()返回一个整数代表星期几(初始为0)isoweekday()返回一个整数代表星期几(初始为1)isoformat()返回格式如YYYY-MM-DD的字符串year年month月day日

用法如下:

import datetime
t = datetime.date.today()
print(t.weekday())
print(t.year)
print(t.timetuple())

输出:

0
2021
time.struct_time(tm_year=2021, tm_mon=12, tm_mday=20, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=354, tm_isdst=-1)
2.2time类

time 类表示由时、分、秒、微秒组成的时间,格式为:time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)。
方法和属性如下图所示:

方法描述isoformat()返回 HH:MM:SS 格式的字符串replace(hour, minute, second, microsecond, tzinfo, * fold=0)创建一个新的时间对象,用参数指定的时、分、秒、微秒代替原有对象中的属性strftime(format)返回自定义格式的字符串hour时minute分second秒microsecond微秒tzinfo时区

用法如下:

import datetime
t = datetime.time()
print(t.hour)
print(t.tzinfo)
print(t.isoformat())

输出:

0
None
00:00:00
2.3datetime类

datetime 包括了 date 与 time 的所有信息,格式为:datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0),参数范围值参考 date 类与 time 类。
方法和属性如下图所示:

方法描述today()返回当地的当前时间mow(tz=None)类似于today,可选择时区utcnow()返回当前UTC时间combine(date,time)根据date和time返回对应时间

用法如下:

import datetime

print(datetime.datetime.hour)
print(datetime.datetime.now())
print(datetime.datetime.today())

输出:

2021-12-20 15:18:42.298486
2021-12-20 15:18:42.298486

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5679709.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存