在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