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

Python中的时间函数使用指南

发布时间:2023-06-23 06:09:11

Python是一种高级编程语言,它有一个强大的标准库,其中包含许多用于处理时间和日期的函数和模块。Python中的时间处理功能可以称之为“任意时间的模块”,可以轻松地处理日期、时间、时间区间、时间差等内容。本文主要介绍Python中的时间函数的使用方法。

一、时间模块

1. time模块

time模块提供了一系列用于处理时间的函数,如获取当前时间戳、延迟操作、转换时间格式等。下面是一些常见的time模块函数:

- time() 函数返回当前时间戳(即1970纪元后经过的浮点秒数)。

- sleep() 函数可以使程序停止执行一段时间,单位为秒。

- localtime() 函数获取当前时间的本地时间(时区是本地时区)。

- gmtime()函数获取当前时间的UTC时间(时区是UTC)。

- strftime()函数可以将时间格式化为自定义格式。

2. datetime模块

datetime模块提供了一系列用于处理日期和时间的函数,如日期时间计算、获取日期时间信息、日期时间格式转换等。下面是一些常见的datetime模块函数:

- datetime.now()函数可以获取当前系统时间。

- datetime.date()函数可以获取当前日期。

- datetime.time()函数可以获取当前时间。

- datetime.timedelta()函数可以计算时间差。

二、时间戳与各种日期时间格式之间的转换

1. 时间戳转日期时间格式

我们可以使用time模块的strftime函数来将时间戳转换为日期时间格式,具体代码如下:

import time

# 将时间戳转为日期格式
timestamp = 1623427200   # 2021年6月12日00:00:00的时间戳
date = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(timestamp))
print(date)

运行结果:

2021-06-12 00:00:00

2. 日期时间格式转时间戳

我们可以使用time模块的mktime函数来将日期时间格式转换为时间戳,具体代码如下:

import time

# 将日期格式转为时间戳
date = '2021-06-12 00:00:00'
timestamp = int(time.mktime(time.strptime(date, '%Y-%m-%d %H:%M:%S')))
print(timestamp)

运行结果:

1623427200

三、获取时间差

我们可以使用datetime模块中的timedelta函数获取时间差。下面演示两个时间的时间差,具体代码如下:

from datetime import datetime

# 计算时间差
start_time = datetime(2021, 1, 1, 0, 0, 0)   # 开始时间 2021-01-01 00:00:00
end_time = datetime.now()                   # 结束时间
duration = end_time - start_time
print(duration.days)

运行结果:

157

以上代码计算的是从2021年1月1日0点到现在的天数。

四、使用pytz模块处理时区

有时候我们需要处理不同时区的时间,就需要使用tzinfo来处理。在Python标准库中没有提供大量有关时区的支持,因此我们需要使用第三方库pytz。具体使用方法如下:

from datetime import datetime
import pytz

# 创建美国纽约时区对象
eastern = pytz.timezone('US/Eastern')

# 获取当前时间
utc = pytz.utc.localize(datetime.utcnow())
ny_time = utc.astimezone(eastern)
print(ny_time)

运行结果:

2022-11-09 15:51:09.608822-05:00

以上代码将UTC时间转换为美国纽约时区的时间。