内置库-日期时间相关
Python 提供了多个处理时间和日期的库,主要包括 time、date、datetime 和 timedelta。以下是它们的简要介绍及常用方法:
1. time 库
time 库提供了与时间相关的函数,主要用于处理时间戳和时间的格式化。
常用方法:
time.time(): 返回当前时间的时间戳(从1970年1月1日开始的秒数)。time.sleep(secs): 让程序暂停指定的秒数。time.localtime([secs]): 将时间戳转换为本地时间的struct_time对象。time.strftime(format[, t]): 将struct_time对象格式化为字符串。time.strptime(string[, format]): 将字符串解析为struct_time对象。
示例:
import time
print(time.time()) # 输出当前时间戳
time.sleep(2) # 暂停2秒
print(time.localtime()) # 输出本地时间
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) # 格式化时间
3. datetime 库
datetime 库提供了处理日期和时间的 类,包括 date、time、datetime、timedelta 等。
date 类
常用方法:
date.today(): 返回当前本地日期。date.fromtimestamp(timestamp): 根据时间戳返回日期对象。date.year,date.month,date.day: 获取日期的年、月、日。date.strftime(format): 将日期格式化为字符串。
示例:
from datetime import date
today = date.today()
print(today) # 输出当前日期
print(today.year, today.month, today.day) # 输出年、月、日
print(today.strftime("%Y-%m-%d")) # 格式化日期
time 类
常用方法:
time(hour=0, minute=0, second=0, microsecond=0):创建一个time对象。time.replace(hour=None, minute=None, second=None, microsecond=None):返回一个新的time对象,替换指定字段的值。time.strftime(format):将time对象格式化为字符串。time.isoformat():返回time对象的 ISO 8601 格式字符串(HH:MM:SS.microsecond)。time.fromisoformat(time_string):从 ISO 8601 格式字符串解析为time对象。
示例:
from datetime import time
# 创建一个 time 对象
t = time(14, 30, 45, 123456)
print(t) # 输出:14:30:45.123456
# 替换分钟和秒
t_replaced = t.replace(minute=45, second=0)
print(t_replaced) # 输出:14:45:00.123456
# 格式化为字符串
print(t.strftime("%H:%M:%S")) # 输出:14:30:45
# ISO 格式
print(t.isoformat()) # 输出:14:30:45.123456
# 从 ISO 格式解析
t_parsed = time.fromisoformat("14:30:45.123456")
print(t_parsed) # 输出:14:30:45.123456
datetime 类
常用方法:
datetime.now(): 返回当前本地日期和时间。datetime.strftime(format): 将datetime对象格式化为字符串。datetime.strptime(string, format): 将字符串解析为datetime对象。datetime.date(): 返回date对象。datetime.time(): 返回time对象。
示例:
from datetime import datetime
now = datetime.now()
print(now) # 输出当前日期和时间
print(now.strftime("%Y-%m-%d %H:%M:%S")) # 格式化日期和时间
print(datetime.strptime("2023-10-01 12:00:00", "%Y-%m-%d %H:%M:%S")) # 解析字符串
timedelta 类
timedelta 类用于表示两个日期或时间之间的差值。
常用方法:
timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0): 创建一个时间差对象。timedelta.total_seconds(): 返回时间差的总秒数。
示例:
from datetime import datetime, timedelta
now = datetime.now()
future = now + timedelta(days=10)
print(future) # 输出10天后的日期和时间
diff = future - now
print(diff.total_seconds()) # 输出时间差的总秒数
5. 格式化符号
| 格式化符号 | 含义 | 示例 |
|---|---|---|
%Y |
4位数的年份 | 2023 |
%y |
2位数的年份 | 23 |
%m |
2位数的月份(01-12) | 01, 12 |
%d |
2位数的日期(01-31) | 01, 31 |
%H |
24小时制的小时(00-23) | 00, 23 |
%I |
12小时制的小时(01-12) | 01, 12 |
%M |
2位数的分钟(00-59) | 00, 59 |
%S |
2位数的秒数(00-59) | 00, 59 |
%f |
微秒(6位数,000000-999999) | 000001, 999999 |
%a |
缩写的星期几 | Mon, Sun |
%A |
完整的星期几 | Monday, Sunday |
%b |
缩写的月份名称 | Jan, Dec |
%B |
完整的月份名称 | January, December |
%p |
AM 或 PM | AM, PM |
%j |
一年中的第几天(001-366) | 001, 365 |
%U |
一年中的第几周(00-53,周日为起点) | 00, 53 |
%W |
一年中的第几周(00-53,周一为起点) | 00, 53 |
%c |
本地日期和时间 | Tue Oct 3 10:00:00 2023 |
%x |
本地日期 | 10/03/23 |
%X |
本地时间 | 10:00:00 |
%% |
百分号 | % |
示例
%Y-%m-%d:2023-10-03%H:%M:%S:14:30:00%Y-%m-%d %H:%M:%S:2023-10-03 14:30:00%A, %B %d, %Y:Tuesday, October 03, 2023%I:%M %p:02:30 PM
总结
time库主要用于处理时间戳和时间的格式化。datetime库结合了日期和时间的处理,包含date、time、datetime、timedelta等常用的类date类用于处理日期。time类用于处理时间。datetime类结合了日期和时间的处理。timedelta类用于处理时间差。

浙公网安备 33010602011771号