当前位置:   article > 正文

【Python】有关时间的模块(time、datetime)_time函数python

time函数python

专栏文章索引:Python

原文章:python内置时间处理函数time_python函数计时-CSDN博客

目录

一、介绍​

二、常用函数​


一、time

1.介绍

Python 的 time 模块提供了处理时间的函数。

time库主要包括三类函数:

  1. 时间获取:计算机时间的表达
  2. 时间格式化:提供获取系统时间并格式化输出功能
  3. 程序计时:提供系统级精确计时功能,用于程序性能分析

2.时间获取

时间获取:time()、ctime()、gmtime()、localtime()

1.time():返回当前时间的时间戳(从1970年1月1日开始计时的秒数)。

  1. import time
  2. current_time = time.time()
  3. print(current_time) # 1710147716.8113403
'
运行

那为什么从970年1月1日开始计时呢?

1970年1月1日被称为“Unix纪元(Unix Epoch)”,它被广泛接受为计算机系统中的标准时间起点。Unix操作系统在设计之初选择1970年1月1日作为起始时间是因为以下几个原因:

  1. 时间简洁性:1970年1月1日没有任何特殊的历史事件或政治纠纷,这样可以使时间起点保持简洁和中立。

  2. 32位整数范围:Unix使用32位有符号整数来表示时间戳,而1970年1月1日是一个很方便的起点,可以涵盖几十年的时间范围。

  3. 兼容性:Unix操作系统在当时的计算机界非常流行,选择1970年1月1日作为时间起点可以使其他系统在时间表示上与Unix兼容。

从那时起,许多操作系统和编程语言都采用了类似的时间起点,因此UNIX纪元被广泛接受为计算机系统中的标准时间起点,并成为了时间表示的共同基准。

 2.ctime():将一个时间戳转换为一个可读的字符串形式。

  1. import time
  2. current_time = time.time()
  3. readable_time = time.ctime(current_time)
  4. print(readable_time) # Mon Mar 11 17:01:32 2024
'
运行

ctime() 函数会根据当前的本地时区来转换时间戳,所以返回的结果会因时区而异。

 3.gmtime():将一个时间戳转换为 UTC 时区的 struct_time 对象。

  1. import time
  2. current_time = time.time()
  3. utc_time = time.gmtime(current_time)
  4. print(utc_time) # time.struct_time(tm_year=2024, tm_mon=3, tm_mday=11, tm_hour=9, tm_min=1, tm_sec=0, tm_wday=0, tm_yday=71, tm_isdst=0)
'
运行

GMT时间:Greenwich Mean Time,格林尼治平时,又称格林尼治平均时间或格林尼治标准时间。是指位于英国伦敦郊区的皇家格林尼治天文台的标准时间。

UTC时间:Universal Time Coordinated,中文名称:世界标准时间或世界协调时。

UNIX时间戳(timestamp)计算机中的UNIX时间戳是以GMT/UTC时间1970-01-01T00:00:00为起点,到当前具体时间的秒数(不考虑闰秒)。这样做的目的,主要是通过“整数计算”来简化计算机对时间操作的复杂度。

 4.localtime():将一个时间戳转换为本地时区的 struct_time 对象。

  1. import time
  2. current_time = time.time()
  3. local_time = time.localtime(current_time)
  4. print(local_time) # time.struct_time(tm_year=2024, tm_mon=3, tm_mday=11, tm_hour=16, tm_min=57, tm_sec=50, tm_wday=0, tm_yday=71, tm_isdst=0)
'
运行

struct_time格式,它包含了许多元素,这些元素的值都是通过浮点数来提供的

struct_time字母元素含意:

元素含义取值
tm_year4位数字,如2024
tm_mon1~12,如2
tm_mday1~31,如2
tm_hour0~23,如7
tm_min0~59,如50
tm_sec0~61(60或61是闰秒)
tm_wday一周的第几日0~6(0为周一,依次类推)
tm_yday一年的第几日1~366(366为儒略历)
tm_isdst夏令时

1:是夏令时

0:非夏令时

-1:不确定

3.时间格式化

时间格式化:strftime()、strptime()、asctime()

将时间以合理的方式展示出来
格式化:类似字符串格式化,需要有展示模板
展示模板由特定的格式化控制符组成

1.strftime()
strftime()函数借助时间格式控制符来输出格式化的时间字符串。
strftime(tpl,ts)函数有两条参数,其中一个为tpl(格式化的模板字符串参数,用来定义输出效果),另一个为ts(是计算机内部时间类型变量,默然为当地标准时间)

  1. import time
  2. date = time.strftime("%Y-%m-%d")
  3. print(date) # 2024-03-11
'
运行
格式字符含义
%a星期的简写。如 星期三为Web
%A星期的全写。如 星期三为Wednesday
%b月份的简写。如4月份为Apr
%B月份的全写。如4月份为April
%c日期时间的字符串表示。(如: 04/07/10 10:43:39)
%d日在这个月中的天数(是这个月的第几天)
%f微秒(范围[0,999999])
%H小时(24小时制,[0, 23])
%I小时(12小时制,[0, 11])
%j日在年中的天数 [001,366](是当年的第几天)
%m月份([01,12])
%M分钟([00,59])
%pAM或者PM
%S秒(范围为[00,61],为什么不是[00, 59],参考python手册_)
%U周在当年的周数当年的第几周),星期天作为周的第一天
%w今天在这周的天数,范围为[0, 6],6表示星期天
%W周在当年的周数(是当年的第几周),星期一作为周的第一天
%x日期字符串(如:04/07/10)
%X时间字符串(如:10:43:39)
%y2个数字表示的年份
%Y4个数字表示的年份
%z与utc时间的间隔 (如果是本地时间,返回空字符串)
%Z时区名称(如果是本地时间,返回空字符串)

2.strptime()函数
strptime(str,tpl)tpl:是格式化模板字符串,用来定义输入效果

str是字符串形式的时间值,所以他的格式为前面为字符串,后面为字符串的格式,然后输出的格式为struct_time。

  1. import time
  2. date = time.strptime("2022-10-31", "%Y-%m-%d")
  3. print(date) # time.struct_time(tm_year=2022, tm_mon=10, tm_mday=31, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=304, tm_isdst=-1)
'
运行

3.asctime()函数
asctime([t])转换由 gmtime() 或 localtime() 所返回的表示时间的元组或 struct_time 为形式的字符串
如果未提供 t,则会使用 localtime() 所返回的当前时间。

  1. import time
  2. date = time.asctime()
  3. print(date) # Mon Mar 11 17:26:50 2024
'
运行

具体就是能将输入的一些函数格式( localtime() 、gmtime()生成的格式)或(元组是9个元素,分别是年,月,日,时,分,秒,星期,第几天,夏令时asctime((2020,12,3,11,3,3,0,211,0)))格式生成 'Mon Oct 31 11:43:08 2022' 的样子

4.程序计时

程序计时:sleep()、perf_counter()

1.perf_counter()函数

测量时间指的是能够记录时间的流逝: perf_counter()获取计算机中CPU也就是中央处理器以其频率运行的时钟纳秒计算,非常精确。
回一个CPU级别的精确时间计数值,单位为秒,由于这个计数值起点不确定,连续调用差值才有意义

  1. import time
  2. for i in range(10):
  3. start = time.perf_counter()
  4. print(start)
  5. """
  6. 0.4185709
  7. 0.4185881
  8. 0.4185924
  9. 0.418596
  10. 0.4185995
  11. 0.4186029
  12. 0.4186065
  13. 0.4186098
  14. 0.4186133
  15. 0.4186167
  16. """
'
运行

2.sleep(secs):让程序休眠指定秒数。

  1. import time
  2. print("开始休眠")
  3. time.sleep(5) # 休眠5秒
  4. print("休眠结束")
'
运行

二、datetime

1.介绍

在python中表示时间的格式有三种:时间戳、元组、格式化时间。与time模块类似,datetime模块也能够将datetime类型转换成这三种类型。

2.date:日期类

3.time:时间类

4.datetime:日期时间类

  1. # 获取当前日期
  2. # current_date = datetime.datetime.now()
  3. # 指定日期
  4. specified_date = datetime.datetime(2024, 4, 16)
  5. # 将日期转换为星期
  6. week_day = specified_date.strftime("%A")

5.timedelta:时间间隔


声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号