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

如何使用Python的time模块获取当前时间并将其格式化输出?

发布时间:2023-05-21 23:19:28

Python 是一种优秀的高级编程语言,拥有丰富的库和模块,其中 time 模块是操作时间相关操作的一个重要模块,它提供了如时间戳、时间格式转换等常用函数,便于在Python程序中使用时间相关操作。

本文将介绍如何使用 Python 的 time 模块获取当前时间并将其格式化输出。

1. 获取当前时间

获取当前时间可以使用 time 模块的函数 time(),该函数返回自 1970 年 1 月 1 日 00:00:00 UTC 到现在的秒数,即时间戳(timestamp)。

以下是获取当前时间的代码示例:

import time
now = time.time()
print(f"当前时间戳为:{now}")

输出结果:

当前时间戳为:xxx

需要注意的是,time() 函数返回的是一个浮点数,需要使用整数或者格式化输出才能更好的呈现时间的信息。

2. 时间格式化输出

获取到当前时间戳之后,通常需要将其格式化输出。Python中 time 模块提供了类似于strftime函数的strftime()函数来实现时间格式化输出。该函数用于将时间戳或struct_time(下一部分详述)转换为指定格式的字符串。

以下是 time.strftime() 函数的基本语法:

time.strftime(format[, t])

其中,format 为时间格式化字符串,t 为可选参数,指定一时间戳或 struct_time 对象。如果不指定 t,则默认使用当前时间。

以下是一个简单的时间格式化输出的示例:

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

输出结果:

2021-05-17 16:42:04

其中 time.localtime() 函数用于获取当前时间的结构化时间(struct_time)。time.strftime() 函数将当前结构化时间格式化为"年-月-日 时:分:秒"的字符串格式输出。

3. struct_time 结构体

time.localtime() 函数和 time.strftime() 函数都是针对 struct_time 结构体进行时间处理。struct_time 结构体是一个 9 元素的元组,它包含以下字段:

| 索引 | 字段 | 值范围 |

| ---- | ------ | ------------------- |

| 0 | 年 | 4位数值 |

| 1 | 月 | 1 到 12 |

| 2 | 日 | 1 到 31 |

| 3 | 时 | 0 到 23 |

| 4 | 分 | 0 到 59 |

| 5 | 秒 | 0 到 61(60或61是闰秒) |

| 6 | 周几 | 0 到 6(0表示周一) |

| 7 | 年中第几天 | 1 到 366 |

| 8 | 夏令时 | 0、1、-1 |

以下是获取年份和月份的代码示例:

import time
now = time.localtime()
year = now.tm_year
month = now.tm_mon
print(f"当前年份为:{year}")
print(f"当前月份为:{month}")

输出结果:

当前年份为:2021
当前月份为:5

需要注意的是,Python 中周几的取值范围默认从 0 开始,即从星期一开始算起。夏令时字段的取值为:

| 取值 | 内容 |

| ---- | -------------- |

| 0 | 本地时区不设夏令时 |

| 1 | 本地时区设夏令时 |

| -1 | 夏令时状态未知 |

4. 时间戳与 struct_time 的转换

time 模块还提供了将时间戳(秒数)和 struct_time 结构体相互转换的函数,分别为 localtime() 和 mktime()。

下面是通过 localtime() 函数将当前时间戳转换为 struct_time 结构体的示例:

import time
now = time.time()
t = time.localtime(now)
print(t)

输出结果:

time.struct_time(tm_year=2021, tm_mon=5, tm_mday=17, tm_hour=16, tm_min=53, tm_sec=58, tm_wday=0, tm_yday=137, tm_isdst=0)

将 struct_time 结构体转换为时间戳可以使用 mktime() 函数。它接收一个 struct_time 对象作为参数,并返回该时间的时间戳。

以下是将 struct_time 结构体转换为时间戳的代码示例:

import time
now = time.localtime()
timestamp = time.mktime(now)
print(f"当前时间戳为:{timestamp}")

输出结果:

当前时间戳为:xxx

5. 总结

time 模块是 Python 中非常实用的一个模块,主要用于处理时间相关操作。其中,通过 time.time() 函数可以获得当前的时间戳,而 time.localtime() 函数可以将时间戳转换为 struct_time 结构体,从而便于对时间信息进行格式化输出。同时,还可以通过 time.mktime() 函数将 struct_time 结构体转换为时间戳,从而方便进行秒数的比较等操作。在实际的 Python 编程中,掌握 time 模块的常用使用方法,能够让程序员更好的处理时间相关的需求,提高程序的效率和可靠性。