python datetime计算超10秒退出_时间戳

目录

一、介绍

二、常用函数


一、time

1.介绍

python datetime计算超10秒退出_字符串_02

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

time库主要包括三类函数:

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

2.时间获取

python datetime计算超10秒退出_python_03

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

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

import time

current_time = time.time()
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():将一个时间戳转换为一个可读的字符串形式。

import time

current_time = time.time()
readable_time = time.ctime(current_time)
print(readable_time)  # Mon Mar 11 17:01:32 2024

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

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

import time

current_time = time.time()
utc_time = time.gmtime(current_time)
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为起点,到当前具体时间的秒数(不考虑闰秒)。这样做的目的,主要是通过“整数计算”来简化计算机对时间操作的复杂度。

python datetime计算超10秒退出_python_04

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

import time

current_time = time.time()
local_time = time.localtime(current_time)
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_year


4位数字,如2024

tm_mon


1~12,如2

tm_mday


1~31,如2

tm_hour


0~23,如7

tm_min


0~59,如50

tm_sec


0~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(是计算机内部时间类型变量,默然为当地标准时间)

import time

date = time.strftime("%Y-%m-%d")
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])

%p

AM或者PM

%S

秒(范围为[00,61],为什么不是[00, 59],参考python手册_)

%U

周在当年的周数当年的第几周),星期天作为周的第一天

%w

今天在这周的天数,范围为[0, 6],6表示星期天

%W

周在当年的周数(是当年的第几周),星期一作为周的第一天

%x

日期字符串(如:04/07/10)

%X

时间字符串(如:10:43:39)

%y

2个数字表示的年份

%Y

4个数字表示的年份

%z

与utc时间的间隔 (如果是本地时间,返回空字符串)

%Z

时区名称(如果是本地时间,返回空字符串)

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

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

import time

date = time.strptime("2022-10-31", "%Y-%m-%d")
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() 所返回的当前时间。

import time

date = time.asctime()
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级别的精确时间计数值,单位为秒,由于这个计数值起点不确定,连续调用差值才有意义

import time

for i in range(10):
    start = time.perf_counter()
    print(start)

"""
0.4185709
0.4185881
0.4185924
0.418596
0.4185995
0.4186029
0.4186065
0.4186098
0.4186133
0.4186167
"""

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

import time

print("开始休眠")
time.sleep(5)  # 休眠5秒
print("休眠结束")

二、datetime

1.介绍

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

2.date:日期类

3.time:时间类

4.datetime:日期时间类

# 获取当前日期
# current_date = datetime.datetime.now()

# 指定日期
specified_date = datetime.datetime(2024, 4, 16)

# 将日期转换为星期
week_day = specified_date.strftime("%A")

5.timedelta:时间间隔