python-time与datetime模块

time&datetime模块

这2个模块是功能相似的,可以对时间类型定义,主要有以下表示:
- 时间戳
- 格式化
- 元组

time模块

  1. time.time()方法
    • 功能:返回从1970年1月1日00:00:00 UTC到当前时刻的秒数(时间戳),这个数字是一个浮点数。它主要用于记录事件发生的时间戳,比如可以用于计算代码段的执行时间等。
    • 示例
import time
start_time = time.time()
# 这里放一段需要计算执行时间的代码
for i in range(1000000):
    pass
end_time = time.time()
print("代码执行时间:", end_time - start_time, "秒")
  1. time.sleep(seconds)方法
    • 功能:让程序暂停执行指定的秒数。这在需要控制程序执行节奏的场景中非常有用,比如在循环中每次操作后等待一段时间,或者在网络请求等操作之间添加延迟。
    • 示例
import time
print("开始")
time.sleep(2)  # 程序暂停2秒
print("结束")
  1. time.localtime([secs])方法
    • 功能:将一个时间戳(以秒为单位)转换为本地时间的结构体。如果不传入参数,默认使用当前时间戳。返回的结构体包含年、月、日、时、分、秒等信息。(本地时间)
    • 示例
import time
current_time_stamp = time.time()
local_time_struct = time.localtime(current_time_stamp)
print("年:", local_time_struct.tm_year)
print("月:", local_time_struct.tm_mon)
print("日:", local_time_struct.tm_mday)
print("时:", local_time_struct.tm_hour)
print("分:", local_time_struct.tm_min)
print("秒:", local_time_struct.tm_sec)
  1. time.gmtime([secs])方法
    • 功能:将一个时间戳(以秒为单位)转换为UTC(协调世界时)时间的结构体。和localtime方法类似,但返回的是UTC时间的信息。(世界时间)
    • 示例
import time
current_time_stamp = time.time()
utc_time_struct = time.gmtime(current_time_stamp)
print("年:", utc_time_struct.tm_year)
print("月:", utc_time_struct.tm_mon)
print("日:", utc_time_struct.tm_mday)
print("时:", utc_time_struct.tm_hour)
print("分:", utc_time_struct.tm_min)
print("秒:", utc_time_struct.tm_sec)
  1. time.strftime(format[,t])方法
    • 功能:将时间结构体(localtimegmtime返回的那种结构体)转换为指定格式的字符串。format参数是一个格式化字符串,用于指定输出时间字符串的格式。
    • 示例
import time
local_time_struct = time.localtime()
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", local_time_struct)
print("格式化后的时间:", formatted_time)
  • 这里%Y表示四位年份,%m表示月份(01 - 12),%d表示日期(01 - 31),%H表示小时(00 - 23),%M表示分钟(00 - 59),%S表示秒(00 - 59)。
  1. time.strptime(string,format)方法
    • 功能:与strftime相反,它是将一个时间字符串按照指定的格式解析为时间结构体。这在读取外部时间格式数据并进行处理时非常有用。
    • 示例
import time
time_str = "2025-01-09 10:30:00"
format_str = "%Y-%m-%d %H:%M:%S"
parsed_time_struct = time.strptime(time_str, format_str)
print("解析后的时间结构体:", parsed_time_struct)

datatime模块

以下是 datetime 模块的一些主要方法:

  1. datetime.now([tz])
    • 功能:返回当前的本地日期和时间,如果提供了 tz 参数(时区信息),则返回该时区的当前日期和时间。
    • 示例代码
from datetime import datetime

# 获取当前本地日期和时间
current_datetime = datetime.now()
print(current_datetime)

# 获取当前 UTC 日期和时间
from datetime import timezone
utc_datetime = datetime.now(timezone.utc)
print(utc_datetime)

代码解释:

  • 首先从 datetime 模块导入 datetime 类。
  • datetime.now() 会返回一个 datetime 对象,包含当前的年、月、日、时、分、秒、微秒信息,使用的是本地时区。
  • 若要获取 UTC 时间,需要导入 timezone 类,并将 timezone.utc 作为参数传递给 datetime.now(),它会根据 UTC 时区返回相应的日期和时间。
  1. datetime.today()
    • 功能:与 datetime.now() 类似,返回当前的本地日期和时间,但不允许传递时区参数,始终返回本地时间。
    • 示例代码
from datetime import datetime

# 获取当前本地日期和时间
current_datetime = datetime.today()
print(current_datetime)

代码解释:

  • 此方法是 datetime.now() 的一个变体,它只返回本地日期和时间,没有参数。
  1. datetime.fromtimestamp(timestamp, tz=None)
    • 功能:将一个 POSIX 时间戳(从 1970-01-01 00:00:00 UTC 开始的秒数)转换为 datetime 对象。可以选择指定时区,若不指定,默认为本地时区。
    • 示例代码
from datetime import datetime

# 时间戳(例如 2025-01-09 23:17:51 的时间戳)
timestamp = 1736481471
# 转换为 datetime 对象
datetime_obj = datetime.fromtimestamp(timestamp)
print(datetime_obj)

# 转换为 UTC 时间
from datetime import timezone
utc_datetime_obj = datetime.fromtimestamp(timestamp, timezone.utc)
print(utc_datetime_obj)

代码解释:

  • 首先定义一个时间戳,这里使用了一个表示 2025-01-09 23:17:51 的时间戳。
  • datetime.fromtimestamp(timestamp) 将时间戳转换为本地时间的 datetime 对象。
  • 若要转换为 UTC 时间,传递 timezone.utc 作为时区参数。
  1. datetime.strftime(format)
    • 功能:将 datetime 对象转换为指定格式的字符串。format 是一个格式化字符串,用于指定输出字符串的格式。
    • 示例代码
from datetime import datetime

current_datetime = datetime.now()
formatted_string = current_datetime.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_string)

代码解释:

  • datetime.now() 获取当前日期和时间。
  • strftime("%Y-%m-%d %H:%M:%S") 会将 datetime 对象按照 %Y-%m-%d %H:%M:%S 的格式转换为字符串,其中 %Y 表示四位数年份,%m 表示月份(01-12),%d 表示日期(01-31),%H 表示小时(00-23),%M 表示分钟(00-59),%S 表示秒(00-59)。
  1. datetime.strptime(date_string, format)
    • 功能:将日期字符串转换为 datetime 对象,需要指定日期字符串的格式。
    • 示例代码
from datetime import datetime

date_string = "2025-01-09 23:17:51"
format_string = "%Y-%m-%d %H:%M:%S"
datetime_obj = datetime.strptime(date_string, format_string)
print(datetime_obj)

代码解释:

  • date_string 是需要转换的日期字符串,format_string 是日期字符串的格式。
  • datetime.strptime(date_string, format_string) 会将字符串根据指定格式转换为 datetime 对象。
  1. datetime.replace(year, month, day, hour, minute, second, microsecond, tzinfo)
    • 功能:替换 datetime 对象中的部分或全部日期和时间信息。
    • 示例代码
from datetime import datetime

current_datetime = datetime.now()
new_datetime = current_datetime.replace(year=2026, month=2)
print(new_datetime)

代码解释:

  • datetime.now() 获取当前日期和时间。
  • current_datetime.replace(year=2026, month=2) 将当前日期和时间中的年份改为 2026 年,月份改为 2 月,其他部分不变。
  1. datetime.timestamp()
    • 功能:将 datetime 对象转换为 POSIX 时间戳(从 1970-01-01 00:00:00 UTC 开始的秒数)。
    • 示例代码
from datetime import datetime

current_datetime = datetime.now()
timestamp = current_datetime.timestamp()
print(timestamp)

代码解释:

  • datetime.now() 获取当前日期和时间。
  • current_datetime.timestamp() 将该 datetime 对象转换为一个浮点数时间戳,可用于存储或传输时间信息。
  1. datetime.date()datetime.time()
    • 功能
      • datetime.date()datetime 对象中提取日期部分,返回一个 date 对象,包含年、月、日信息。
      • datetime.time()datetime 对象中提取时间部分,返回一个 time 对象,包含时、分、秒、微秒信息。
    • 示例代码
from datetime import datetime

current_datetime = datetime.now()
date_part = current_datetime.date()
time_part = current_datetime.time()
print("日期部分:", date_part)
print("时间部分:", time_part)

代码解释:

  • datetime.now() 获取当前日期和时间。
  • current_datetime.date() 提取日期部分。
  • current_datetime.time() 提取时间部分。
  1. datetime.utcnow()
    • 功能:返回当前的 UTC 日期和时间。
    • 示例代码
from datetime import datetime

utc_now = datetime.utcnow()
print(utc_now)

代码解释:

  • 此方法直接返回当前的 UTC 日期和时间,不考虑本地时区,返回的 datetime 对象的时区信息默认为 None
  1. datetime.utcoffset()
    • 功能:如果 datetime 对象有时区信息,返回该时区相对于 UTC 的偏移量;如果没有时区信息,返回 None
    • 示例代码
from datetime import datetime, timezone

utc_datetime = datetime.now(timezone.utc)
offset = utc_datetime.utcoffset()
print(offset)

代码解释:

  • datetime.now(timezone.utc) 获取 UTC 时间的 datetime 对象。
  • utc_datetime.utcoffset() 会返回该 UTC 时间对象相对于 UTC 的偏移量,对于 UTC 时间,偏移量为 timedelta(0),表示没有偏移。
  1. datetime.astimezone(tz)
    • 功能:将 datetime 对象转换为另一个时区的时间。
    • 示例代码
from datetime import datetime, timezone
import pytz

current_datetime = datetime.now()
# 转换为东京时区
tokyo_timezone = pytz.timezone('Asia/Tokyo')
tokyo_datetime = current_datetime.astimezone(tokyo_timezone)
print(tokyo_datetime)

代码解释:

  • 首先使用 datetime.now() 获取当前本地日期和时间。
  • pytz.timezone('Asia/Tokyo') 获取东京的时区对象。
  • current_datetime.astimezone(tokyo_timezone) 将当前日期和时间转换为东京时区的时间。需要注意的是,这里使用了 pytz 模块,需要提前安装,可以通过 pip install pytz 安装。
  1. datetime.timedelta(days, seconds, microseconds, milliseconds, minutes, hours, weeks)
    • 功能:表示两个 datetime 对象之间的时间差,可以用来进行日期和时间的加减运算。
    • 示例代码
from datetime import datetime, timedelta

current_datetime = datetime.now()
one_day_later = current_datetime + timedelta(days=1)
print(one_day_later)

代码解释:

  • datetime.now() 获取当前日期和时间。
  • timedelta(days=1) 创建一个表示一天时间差的 timedelta 对象。
  • current_datetime + timedelta(days=1) 将当前日期和时间加上一天的时间差,得到一天后的日期和时间。

这些方法涵盖了 datetime 模块的基本使用,包括时间的创建、转换、格式化、运算和时区处理等,能满足日常开发中大部分的日期和时间操作需求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值