内置库-日期时间相关

Python 提供了多个处理时间和日期的库,主要包括 timedatedatetimetimedelta。以下是它们的简要介绍及常用方法:

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 库提供了处理日期和时间的 ,包括 datetimedatetimetimedelta 等。

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 库结合了日期和时间的处理,包含 datetimedatetimetimedelta 等常用的类
    • date 类用于处理日期。
    • time 类用于处理时间。
    • datetime 类结合了日期和时间的处理。
    • timedelta 类用于处理时间差。
posted @ 2025-03-14 10:58  CyrusHuang  阅读(26)  评论(0)    收藏  举报