当前位置: 首页 > ds >正文

Python时间模块

  time 和 datetime 是 Python 中处理时间的两个重要模块,它们提供了不同的功能来处理时间相关的操作。

time模块

  time 模块主要提供与系统时间相关的基础功能,侧重于时间戳和简单的时间格式处理。

  • time.time():返回当前时间的时间戳(即从 1970 年 1 月 1 日至今的秒数)。
  • time.localtime([seconds]):可选参数seconds为时间戳,默认为当前时间。将给定的时间戳转换为本地时间的 struct_time 对象。
  • time.mktime(t):t 为struct_time 对象,将 struct_time 对象转换为时间戳(即自1970年1月1日至今的秒数)。
  • time.strptime(string[, format]):将指定格式format的时间字符串string解析为 struct_time 对象。
  • time.strftime(format[, t]):t 为struct_time 对象,将 struct_time 对象按指定格式format转变为时间字符串。
常用格式代码含义示例
%Y四位年份2023
%y两位年份23
%m月份 (01-12)07
%d日 (01-31)15
%H24小时制小时 (00-23)14
%I12小时制小时 (01-12)02
%M分钟 (00-59)30
%S秒 (00-59)45
%X等同于 %H:%M:%S(24小时制)14:30:45
%A完整星期名Monday
%a缩写星期名Mon
%B完整月份名July
%b缩写月份名Jul
%pAM/PMPM
  • time.struct_time 类:struct_time 是一个结构体类型,用于表示时间。它是 time 模块中的时间元组,包含 9 个时间属性。
属性名描述取值范围
tm_year如 2023
tm_mon1-12
tm_mday1-31
tm_hour0-23
tm_min0-59
tm_sec0-61 (60和61是闰秒)
tm_wday星期几0-6 (0是周一)
tm_yday一年中的第几天1-366
tm_isdst夏令时标志-1, 0, 1

转换关系

time.localtime
time.mktime
time.strftime
time.strptime
时间戳
struct_time
时间格式字符串

使用示例:

import time# 获取当前时间戳
timestamp = time.time()
print(timestamp)# 将时间戳转换为本地时间 struct_time对象
local_time = time.localtime(timestamp)
print(local_time)# 将当前时间的 struct_time 对象转换为时间戳
timestamp = time.mktime(time.localtime())
print(timestamp)# 将格式化字符串转换为 struct_time 对象
date_obj = time.strptime("2025-04-23 14:30:00", "%Y-%m-%d %X")
print(date_obj)# 将 struct_time 对象格式化为字符串
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print(formatted_time)

datetime模块

  datetime 模块提供了更高级的时间和日期操作功能,可以创建和操作日期、时间对象。它支持时间加减、时区转换、格式化和解析等操作。

常见类:

  • datetime.date: 表示日期(年、月、日)
  • datetime.time: 表示时间(时、分、秒、微秒)
  • datetime.datetime: 表示日期和时间(年、月、日、时、分、秒、毫秒)
  • datetime.timedelta: 表示两个 datetime 对象之间的差值,用来进行时间的加减操作。
  • datetime.tzinfo: 处理时区信息(抽象基类)
构造方法
属性
常用方法
datedate(year, month, day)● year: 获取年份
● month: 获取月份
● day: 获取日
● replace(year, month, day):生成一个新的日期对象,用参数指定的年,月,日代替原有对象中的属性。(原有对象仍保持不变)
● timetuple():返回日期对应的time.struct_time对象;
● weekday():返回weekday,如果是星期一,返回0;如果是星期2,返回1,以此类推;
● isoweekday():返回星期数,如果是星期一,返回1;如果是星期2,返回2,以此类推;
● isoformat():返回格式如’YYYY-MM-DD’的字符串;
● strftime(format):将date对象转为format格式时间字符串。
● today():返回一个表示当前本地时间的date对象。
timetime(hour, minute, second, microsecond,tzinfo=None, *, fold=0)● hour: 获取小时
● minute: 获取分钟
● second: 获取秒
● microsecond: 获取微秒
● isoformat():返回格式如’%H:%M:%S’的字符串;
● strftime(format):将time对象转为format格式时间字符串。
datetimedatetime(year, month, day, hour, minute, second, microsecond,tzinfo=None, *, fold=0)同上● isoformat():返回格式如’YYYY-MM-DD %H:%M:%S’的字符串。
● strftime(format):将datetime对象转为format格式时间字符串。
● strptime(date_string, format):将格式字符串转换为datetime对象。
● now([tz]):返回一个表示当前本地时间的datetime对象,如果提供了参数tz,则获取tz参数所指时区的本地时间。
● today():返回一个表示当前本地时间的datetime对象。
● fromtimestamp(timestamp[, tz]):根据时间戮创建一个datetime对象,参数tz指定时区信息。
timedeltatimedelta(days, hours, minutes, seconds, microseconds,milliseconds,weeks)● days: 返回天数
● seconds: 返回秒数
● microseconds: 返回微秒数
tzinfotzinfo 是一个抽象基类,用于处理时区信息。用户可以继承该类实现时区功能,但标准库中的 datetime 模块并没有直接提供具体的时区类。pytz 库提供的时区类继承了tzinfo类并实现了时区相关的方法。
dt:datetime对象

● utcoffset(self, dt):返回与 UTC 的时差,返回一个 timedelta 对象。
● dst(self, dt):返回夏令时的时差,返回一个 timedelta 对象。
● tzname(self, dt):返回时区名称,通常是一个字符串。

参数补充说明——tzinfo:时区信息对象;fold:处理重复时间(夏令时),0或1

from datetime import *# date类
d = date(2021, 10, 26)
today = date.today()
print('d:', d, ', today:', today)               # d: 2021-10-26 , today: 2025-05-09
print(d.year,d.month,d.day)                    # 2021 10 26
print('weekday():', d.weekday())                 # weekday(): 1
print('isoweekday():', d.isoweekday())           # isoweekday(): 2
print('isoformat():', d.isoformat())             # isoformat(): 2021-10-26
print('strftime():', d.strftime("%Y-%m-%d"))     # strftime(): 2021-10-26# time类
t = time(14, 30, 15)  # 创建一个时间对象,表示14点30分15秒
print(t)             # 输出: 14:30:15
print(t.hour)        # 14
print(t.minute)      # 30
print(t.second)      # 45
print(t.microsecond) # 123456
print(t.isoformat())      # "14:30:45"
print(t.strftime("%H:%M")) # "14:30"# datetime类
dt = datetime(2023, 7, 15, 14, 30, 45, 123456)
print(dt.year)        # 2023
print(dt.month)       # 7
print(dt.day)         # 15
print(dt.hour)        # 14
print(dt.minute)      # 30
print(dt.second)      # 45
print(dt.microsecond) # 123456
print(dt.date())       # 获取date部分
print(dt.time())       # 获取time部分
print(dt.timestamp())  # 获取时间戳
print(dt.isoformat())  # "2023-07-15T14:30:45"
print(dt.strftime("%Y-%m-%d %H:%M:%S"))  # 自定义格式化
print(datetime.strptime('2022-03-21', "%Y-%m-%d"))
print(datetime.now())# timedelta类
dt = datetime.now()
dt_1 = dt + timedelta(days=-1)#昨天
dt_11 = dt - timedelta(days=1)#昨天
dt3 = dt + timedelta(days=1)#明天
dt_hour = dt + timedelta(hours=1) # tzinfo类
class BeijingTime(tzinfo):def utcoffset(self, dt):return timedelta(hours=8)def tzname(self, dt):return "Beijing Time"def dst(self, dt):return timedelta(0)
beijing_tz = BeijingTime()
dt = datetime(2023, 7, 15, 14, 30, 45, tzinfo=beijing_tz)
print(dt)  # 2023-07-15 14:30:45+08:00
http://www.xdnf.cn/news/5501.html

相关文章:

  • MySQL 从入门到精通(二):DML 数据操作与 DQL 数据查询详解
  • Python项目75:PyInstaller+Tkinter+subprocess打包工具1.0(安排 !!)
  • 阿里云OSS-服务端加签直传说明/示例(SpringBoot)
  • Python数据分析案例75——基于图神经网络的交通路段流量时间序列预测
  • navicat 如何导出数据库表 的这些信息 字段名 类型 描述
  • fota移植包合入后编译验证提示:File verification failed
  • Java线程池深度解析:从使用到原理全面掌握
  • KTOR for windows:無文件落地HTTP服务扫描工具
  • 【Bootstrap V4系列】学习入门教程之 组件-表单(Forms)高级用法(二)
  • 教育行业的 RAG 落地:个性化学习助手设计
  • 【Linux基础】网络相关命令
  • Client 和 Server 的关系理解
  • Yocto项目实战经验总结:从入门到高级的全面概览
  • 大模型Embedding模型介绍与使用
  • [CANN] 安装软件依赖
  • 数仓-可累计,半累加,不可累加指标,是什么,举例说明及解决方案
  • 前端面试题:说说你对 Vue 中异步组件的理解
  • jetson orin nano super AI模型部署之路(十)使用frp配置内网穿透,随时随地ssh到机器
  • 单词怎么记:以use一词为例
  • Java中Comparator排序原理详解
  • 3. 无重复字符的最长子串(滑动窗口)
  • 客户端建立一个连接需要占用客户端的端口吗
  • NHANES稀有指标推荐:HALP score
  • average per-pixel disparity error: EPE及不同距离值下的误差曲线
  • JavaScript基础-全局作用域
  • 《Python星球日记》 第53天:卷积神经网络(CNN)入门
  • DNS服务实验
  • 土耳其Koç大学指令驱动的智能综述,从文本表达到任务执行的系统探索
  • 王慧文产品课总结
  • @Transactional注解失效