Python中的时间函数使用指南
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时间转换为美国纽约时区的时间。
