欢迎访问宙启技术站
智能推送

时间转换函数的用法总结

发布时间:2023-06-19 03:22:51

时间是计算机中一个非常重要的数据类型,因为计算机在大多数情况下都是通过时间来进行计算和判断的,所以时间转换函数在计算机编程中是非常常用的,可以帮助程序员更方便地处理时间数据。本文将总结时间转换函数的用法,以帮助读者更好地理解和使用。

一、时间的存储格式

在计算机中,时间通常被表示为一个数值,这个数值表示从某个时间节点开始到现在的秒数或毫秒数,称为时间戳。常见的时间戳格式有两种:

1. Unix 时间戳:用于表示从 1970 年 1 月 1 日 0 点 0 分 0 秒(UTC)到当前时刻的秒数。如果写成数学公式就是:

Unix 时间戳 = 当前时刻的秒数 - 从 1970 年 1 月 1 日 0 点 0 分 0 秒(UTC)到当前时刻的秒数

2. ISO 时间戳:用于表示从 1970 年 1 月 1 日 0 时 0 分 0 秒(UTC)到当前时刻的毫秒数。如果写成码语言程序就是:

ISO 时间戳 = 当前时刻的毫秒数 - 从 1970 年 1 月 1 日 0 时 0 分 0 秒(UTC)到当前时刻的毫秒数

二、常用的时间转换函数

1. time()函数

time() 函数用于获取当前时间的 Unix 时间戳(秒数),返回一个浮点数类型的值,精确到秒。如果需要获取毫秒级别的精度,可以使用 time.time_ns() 函数,其返回值为一个整数类型的毫秒值。

代码示例:

import time

current_time = time.time()

print("当前时间戳为:", current_time)

执行结果:

当前时间戳为: 1635627876.8155131

2. localtime()函数

localtime() 函数用于将 Unix 时间戳转换为本地时间,返回一个 struct_time 类型的元组,其中包含了年份、月份、日期、小时、分钟、秒等具体时间信息。如果不传入任何参数,函数将会使用当前的本地时间进行转换。

代码示例:

import time

current_time = time.time()

local_time = time.localtime(current_time)

print("本地时间为:", local_time)

执行结果:

本地时间为: time.struct_time(tm_year=2021, tm_mon=10, tm_mday=30, tm_hour=16, tm_min=15, tm_sec=38, tm_wday=5, tm_yday=303, tm_isdst=0)

3. gmtime()函数

gmtime() 函数用于将 Unix 时间戳转换为 UTC 时间,返回一个 struct_time 类型的元组,其中包含了年份、月份、日期、小时、分钟、秒等具体时间信息。如果不传入任何参数,函数将会使用当前的 UTC 时间进行转换。

代码示例:

import time

current_time = time.time()

utc_time = time.gmtime(current_time)

print("UTC 时间为:", utc_time)

执行结果:

UTC 时间为: time.struct_time(tm_year=2021, tm_mon=10, tm_mday=30, tm_hour=8, tm_min=15, tm_sec=38, tm_wday=5, tm_yday=303, tm_isdst=0)

4. strftime()函数

strftime() 函数用于将 struct_time 类型的时间转换为指定格式的字符串类型时间。可以通过传入格式化字符串来指定要输出的时间格式。常用的格式化字符串符号有:

符号 含义

%a 星期几的缩写(例如 Mon)

%A 星期几的全称(例如 Monday)

%b 月份的缩写(例如 Jan)

%B 月份的全称(例如 January)

%c 完整的日期和时间(例如 Mon Jan 19 21:23:29 2009)

%d 日期(例如 01)

%H 小时(24 小时制,例如 23)

%I 小时(12 小时制,例如 11)

%j 一年中的第几天(例如 001)

%m 月份(例如 01)

%M 分钟(例如 23)

%p AM 或 PM

%S 秒钟(例如 04)

%U 一年中的第几周,以周日为首日(例如 01)

%w 星期几(用数字表示,0 代表 Sunday,1 代表 Monday,以此类推)

%W 一年中的第几周,以周一为首日(例如 01)

%x 完整的日期(例如 01/19/09)

%X 完整的时间(例如 21:23:29)

%y 年份的后两位数字(例如 09)

%Y 完整的年份(例如 2009)

%Z 时区的名称(例如 EST)

代码示例:

import time

current_time = time.time()

local_time = time.localtime(current_time)

str_time = time.strftime("%Y-%m-%d %H:%M:%S", local_time)

print("当前时间为:", str_time)

执行结果:

当前时间为: 2021-10-30 16:15:38

5. strptime()函数

strptime() 函数用于将字符串格式的时间转换为 struct_time 类型的时间。需要传入两个参数,其中 个参数为字符串类型的时间,第二个参数为格式化字符串。函数将会根据格式化字符串来分解字符串类型时间,并将其转换为 struct_time 类型时间。

代码示例:

import time

str_time = "2021-10-30 16:30:30"

local_time = time.strptime(str_time, "%Y-%m-%d %H:%M:%S")

print("本地时间为:", local_time)

执行结果:

本地时间为: time.struct_time(tm_year=2021, tm_mon=10, tm_mday=30, tm_hour=16, tm_min=30, tm_sec=30, tm_wday=5, tm_yday=303, tm_isdst=-1)

6. sleep()函数

sleep() 函数用于让程序挂起指定的秒数,然后再继续执行。可以通过传入一个整数或浮点数类型的参数来指定等待的秒数。需要注意的是,此函数会阻塞程序的执行,直到等待时间结束或者调用了当前线程的 interrupt() 方法,才会继续执行后面的代码。

代码示例:

import time

print("开始等待...")

time.sleep(3)

print("等待结束!")

执行结果:

开始等待...

等待结束!

三、总结

时间转换函数在计算机编程中是非常常用的,可以帮助程序员更方便地处理时间数据。本文总结了常用的时间转换函数,包括 time()、localtime()、gmtime()、strftime()、strptime() 和 sleep() 函数,并介绍了时间戳的存储格式和常用的格式化字符串符号。希望读者可以通过本文的介绍更好地掌握时间转换函数的用法,提高编程效率。