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

Python 中与日期时间相关的常见函数

发布时间:2023-06-07 06:38:11

Python 在处理日期时间数据时,提供了许多函数和模块,方便用户进行时间的相关操作。我将从以下几个方面来介绍 Python 中常见的日期时间函数:

1. 时间获取函数

2. 时间格式化函数

3. 时间计算函数

4. 时间转换函数

首先,我们需要了解常见的时间表示方式:

- 时间戳:以 Unix 时间戳为例,表示自 1970 年 1 月 1 日 0 时 0 分 0 秒起的秒数;

- 时间元组:以 (年, 月, 日, 时, 分, 秒, 星期, 一年中第几天, 夏令时) 的方式表示;

- 标准时间格式:以字符串形式表示,如 "2022-01-01 00:00:00"。

1. 时间获取函数

获取当前时间:

在 Python 中,我们可以使用模块 datetime 中的 datetime 类来获取当前时间:

import datetime

now = datetime.datetime.now()

print(now)

输出结果为:

2022-09-13 09:54:47.659162

获取指定时间:

当我们需要获取指定时间时,可以使用 datetime 类中的 fromisoformat 方法或 strptime 方法,将字符串格式的时间转换成 datetime 对象。

以获取 2022 年 9 月 30 日的 0 点 0 分 0 秒为例:

import datetime

specified_time = datetime.datetime.fromisoformat("2022-09-30T00:00:00")

print(specified_time)

输出结果为:

2022-09-30 00:00:00

2. 时间格式化函数

strftime 函数:

在 Python 中,可以使用 datetime 类的 strftime 方法来格式化时间:

import datetime

now = datetime.datetime.now()

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

print(str_time)

输出结果为:

2022-09-13 09:54:47

将时间元组转换为字符串:

import time

time_tuple = time.localtime()

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

print(str_time)

输出结果为:

2022-09-13 09:54:47

3. 时间计算函数

时间加减:

在 Python 中,我们可以通过 datetime 类中的 timedelta 方法来进行时间的加减操作:

import datetime

now = datetime.datetime.now()

new_time = now + datetime.timedelta(days=1, hours=2, minutes=30)

print(new_time)

输出结果为当前时间加上 1 天、2 小时、30 分钟后的时间。

时间差:

我们可以使用 datetime 类中的 strftime 和 strptime 方法,将时间字符串转换成时间对象,并将两个时间对象进行相减,来计算两个时间之间的差值:

import datetime

start_time = datetime.datetime.strptime("2022-08-01 00:00:00", "%Y-%m-%d %H:%M:%S")
end_time = datetime.datetime.strptime("2022-09-13 09:54:47", "%Y-%m-%d %H:%M:%S")

time_diff = end_time - start_time

print("相差天数:", time_diff.days)
print("相差秒数:", time_diff.seconds)

输出结果为:

相差天数: 43
相差秒数: 35687

4. 时间转换函数

时间字符串转时间戳:

在 Python 中,我们可以使用 time 模块中的 mktime 方法,将时间字符串转换成时间戳:

import time

time_str = "2022-09-13 09:54:47"
time_tuple = time.strptime(time_str, "%Y-%m-%d %H:%M:%S")
time_stamp = time.mktime(time_tuple)

print(time_stamp)

输出结果为:

1663167287.0

时间戳转时间字符串:

在 Python 中,我们可以使用 time 模块中的 localtime 和 strftime 方法,将时间戳转换成时间字符串:

import time

time_stamp = 1663167287
time_tuple = time.localtime(time_stamp)
time_str = time.strftime("%Y-%m-%d %H:%M:%S", time_tuple)

print(time_str)

输出结果为:

2022-09-13 09:54:47

时间元组转时间戳:

在 Python 中,我们可以使用 time 模块中的 mktime 方法,将时间元组转换成时间戳:

import time

time_tuple = (2022, 9, 13, 9, 54, 47, 1, 256, 0)
time_stamp = time.mktime(time_tuple)

print(time_stamp)

输出结果为:

1663167287.0

时间戳转时间元组:

在 Python 中,我们可以使用 time 模块中的 localtime 方法,将时间戳转换成时间元组:

import time

time_stamp = 1663167287
time_tuple = time.localtime(time_stamp)

print(time_tuple)

输出结果为:

time.struct_time(tm_year=2022, tm_mon=9, tm_mday=13, tm_hour=9, tm_min=54, tm_sec=47, tm_wday=1, tm_yday=256, tm_isdst=0)

综上所述,Python 在时间处理方面提供了丰富的函数和模块,能够满足我们不同场景下对时间的需求。