在Python中,日期和时间可能涉及好几种不同的数据类型和函数。 下面回顾了表示时间的3种不同类型的值:
- Unix纪元时间戳(
time模块中使用)是一个浮点值或 整型值,表示自1970年1月1日午夜0点 (UTC) 以来的秒数。 datetime对象(属于datetime模块)包含一些整 型值,保存在year、month、day、hour、minute和second等属性中。timedelta对象(属于datetime模块)表示的一段 时间,而不是一个特定的时刻。
time.time()函数返回一个浮点值, 表示当前时刻的 Unix 纪元时间戳。time.sleep(seconds)函数让程序 暂停seconds参数指定的秒数。datetime.datetime(year, month, day,hour,minute, second)函数返回参数指定的时刻的datetime对象。 如果没有提供hour、minute或second参数,它们默认为0。datetime.datetime.now ()函数返回当前 时刻的datetime对象。datetime.datetime.fromtimestamp(epoch)函数 返回epoch时间戳参数表示的时刻的datetime对象。datetime.timedelta(weeks, days, hours,minutes, seconds, milliseconds, microseconds)函数返回一个表示一段时间的timedelta对象。 该函数的关键字参数都是可选的,不包括month或year。total_seconds()方法用于timedelta对象, 返回timedelta对象表示的秒数。strftime(format)方法返回一个字符串, 用format字符串中的定制格式来表示datetime对象表不的时间。datetime.datetime.strptime(time_string,format)函数 返回一个datetime对象,它的时刻由time_string指定, 利用format字符串参数来解析。
import time
获取时间戳(自1970-1-1 UTC的秒数)。
timestamp = time.time() # 1689413445.123456
线程暂停:
暂停0.5秒
time.sleep(0.5)
结构化时间:
本地时间
struct_time = time.localtime()
"""
time.struct_time(
tm_year=2023,
tm_mon=7,
tm_mday=15,
tm_hour=14,
tm_min=30,
tm_sec=45,
tm_wday=5, # 周几(0-6)
tm_yday=196, # 年中第几天
tm_isdst=0 # 夏令时
)
"""
'\ntime.struct_time(\n tm_year=2023, \n tm_mon=7, \n tm_mday=15,\n tm_hour=14,\n tm_min=30,\n tm_sec=45,\n tm_wday=5, # 周几(0-6)\n tm_yday=196, # 年中第几天\n tm_isdst=0 # 夏令时\n)\n'
时间格式转换。
time_str = time.strftime("%Y-%m-%d %H:%M:%S", struct_time)
parsed_time = time.strptime("2023-07-15", "%Y-%m-%d")
- datetime模块(高级日期时间操作)
from datetime import datetime, date, time, timedelta
当前时间
now = datetime.now() # 2023-07-15 14:30:45.123456
today = date.today() # 2023-07-15
时间运算
delta = timedelta(days=7)
next_week = now + delta
属性访问
print(now.year, now.month, now.day) # 2023 7 15
2025 4 25