时间转换函数的用法总结
时间是计算机中一个非常重要的数据类型,因为计算机在大多数情况下都是通过时间来进行计算和判断的,所以时间转换函数在计算机编程中是非常常用的,可以帮助程序员更方便地处理时间数据。本文将总结时间转换函数的用法,以帮助读者更好地理解和使用。
一、时间的存储格式
在计算机中,时间通常被表示为一个数值,这个数值表示从某个时间节点开始到现在的秒数或毫秒数,称为时间戳。常见的时间戳格式有两种:
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() 函数,并介绍了时间戳的存储格式和常用的格式化字符串符号。希望读者可以通过本文的介绍更好地掌握时间转换函数的用法,提高编程效率。
