时间模块datetime
1.python基础之注释2.python语言学习路线(基础)3.python源码结构4.python发展史及python应用场景5.变量6.bug及debug7.常见数据类型及其转换8.字符串格式化9.转义符10.字符串在货币、日期、精度的处理11.字符编解码12.字符编解码及其相互转换13.内置函数-help-帮助文档14.内置函数print-输出15.内置函数input16.运算符17.int的缓存策略(特别容易混)18.判断语句19.random模块20.判断语句+ random的应用-剪刀石头布游戏21.三元运算符(if else的简写)22.循环语句-while23.循环语句-while-练习题24.循环语句for循环25.循环语句 + else26.字符串类str27.正则在字符串中的简单应用28.列表(List)29.列表list的sort方法的坑30.列表综合应用-8个教室随机分配到3个教室31.元组32.自动组包 & 自动解包33.字典34.集合35.公共操作36.公共操作-推导式(集合、列表、字典)37.函数定义、调用、闭包38.拆包和交换变量值39.函数的变量作用域、返回值、参数40.函数递归41.匿名函数(lambda表达式)0142.内置函数abs43.内置函数round44.内置函数abs0245.高阶函数46.内置高阶函数map47.内置高阶函数reduce48.内置函数reduce49.学生管理系统-函数&循环&运算符综合练习50.文件操作之语法51.文件操作2-最佳实践52.文件操作之seek53.文件及文件夹操作54.面向对象基本概念55.面向对象之类、对象的定义56.添加和获取对象属性57.面向对象之魔法方法58.魔法函数 __repr__() 和 __str__()的区别59.魔法方法__len__60.魔法方法之__getitem__(self, key)、__setitem__(self, key, value) 和 __delitem__(self, key) 61.魔法方法之__iter__(self) && __next__(self)62.TypeError: iter() returned non-iterator of type 'MyIterable'63.魔法方法之__contains__()64.魔法方法之__call__65.魔法方法之__getattr__(), __setattr__(), 和 __delattr__66.__eq__(), __lt__(), 和 __gt__() 67.案例:烤地瓜68.案例:给房子置办家具69.继承70.继承之子类复用父类的属性、方法71.继承的分类72.MRO73.继承之子类重写父类同名属性和方法74.⼦类调⽤⽗类的同名⽅法和属性75.私有属性&&方法的定义&访问限制76.setter&getter方法访问私有属性77.__mro__属性78.python 面向对象3大特征详解79. 类属性和实例属性80.类属性和实例属性最佳实践81.类方法82.静态方法83.异常基础84.多组异常处理基础85.多组异常处理86.使用Python内置的错误信息87.捕获所有异常88.手动抛异常(raise)89.try-except-else-finally90.断言assert在异常中应用91.自定义异常类92.模块93.常见的5种模块导入94.模块的定位顺序95.__all__变量限制、明确导入范围96.包
97.时间模块datetime
98.多任务编程之并发、并行概念99.进程实现多任务(进程概念、单进程、多进程执行多任务)1 ''' 2 datetime 模块是 Python 标准库中用于处理日期和时间的模块。 3 4 1. 详解: 5 datetime 模块提供了多个类来处理日期和时间,包括 date、time、datetime 和 timedelta 等。 6 1. date 类表示一个具体的日期(年、月、日)。 7 2. time 类表示一个具体的时间(时、分、秒、微秒)。 8 3. datetime 类表示一个具体的日期和时间(年、月、日、时、分、秒、微秒)。 9 4. timedelta 类表示时间间隔,可以用于计算两个日期或时间之间的差异。 10 datetime 模块还提供了一些函数和常量,如 datetime.now()、datetime.strptime() 和 datetime.strftime() 等,用于获取当前时间、将字符串转换为日期时间对象以及将日期时间对象格式化为字符串等操作。 11 12 2. 最佳实践 13 1. 使用 datetime 类型存储和操作日期时间数据,而不是字符串。这样可以更方便地进行日期时间的计算和比较。 14 2. 在涉及时区的情况下,建议使用第三方库(如 pytz)来处理时区问题,而不是仅依赖 datetime 模块。 15 3. 使用 datetime.strftime() 函数将日期时间对象格式化为字符串时,应该使用合适的格式化字符串。可以参考 Python 官方文档中的 strftime 格式代码。 16 4. 当需要处理时间差异时,使用 timedelta 类来进行日期时间的加减操作。 17 18 3. 在使用 datetime 模块时,需要注意以下一些常见的坑点: 19 1. 月份和星期的表示:在 datetime 模块中,月份和星期的表示是以 1 开始的,而不是以 0 开始的。即 1 表示一月或星期一,2 表示二月或星期二,依此类推。 20 2. 日期时间对象的不可变性:datetime 对象是不可变的,即不能直接修改其中的年、月、日、时、分、秒等属性。如果需要修改日期时间对象的某个部分,可以使用相应的方法(如 replace() 方法)返回一个新的日期时间对象。 21 3. 时间的计算和比较:在计算时间差或者比较两个时间大小时,应该使用 timedelta 类来处理,而不是直接减法或比较运算符。 22 23 4. 语法: 24 1. datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0) 25 创建一个表示日期时间的对象。 26 参数 year、month、day 是必需的,表示年、月、日。 27 参数 hour、minute、second、microsecond 是可选的,默认为 0,表示时、分、秒、微秒。 28 29 2. datetime.date(year, month, day) 30 创建一个表示日期的对象。 31 参数 year、month、day 是必需的,表示年、月、日。 32 33 3. datetime.time(hour=0, minute=0, second=0, microsecond=0) 34 创建一个表示时间的对象。 35 参数 hour、minute、second、microsecond 是可选的,默认为 0,表示时、分、秒、微秒。 36 37 4. datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0) 38 创建一个表示时间间隔的对象。 39 可以指定不同的参数来定义时间间隔,如天数(days)、秒数(seconds)、微秒数(microseconds)、毫秒数(milliseconds)、分钟数(minutes)、小时数(hours)和周数(weeks)。 40 41 5. datetime.datetime.now(tz=None) 42 返回当前本地日期时间。 43 可选参数 tz 是一个时区对象,用于获取特定时区的当前日期时间。 44 45 6. datetime.datetime.strptime(date_string, format) 46 将字符串解析为日期时间对象。 47 参数 date_string 是待解析的日期时间字符串,参数 format 是日期时间字符串的格式。 48 49 7. datetime.datetime.strftime(format) 50 将日期时间对象格式化为字符串。 51 参数 format 是格式化字符串,用于指定输出的日期时间格式。 52 53 8. datetime.datetime.fromtimestamp(timestamp, tz=None) 54 将 POSIX 时间戳转换为日期时间对象。 55 参数 timestamp 是一个表示时间的浮点数,表示自 1970 年 1 月 1 日以来经过的秒数。 56 ''' 57 58 import datetime 59 60 # 获取当前日期时间(含毫秒) 61 now = datetime.datetime.now() 62 print("Current datetime:", now) # Current datetime: 2023-07-23 11:30:11.814882 63 64 # 创建一个特定的日期时间对象 65 dt = datetime.datetime(2022, 1, 1, 12, 0, 0) 66 print("Specific datetime:", dt) # Specific datetime: 2022-01-01 12:00:00 67 68 # 格式化日期时间对象为字符串 69 formatted = dt.strftime("%Y-%m-%d %H:%M:%S") 70 print("Formatted datetime:", formatted) # Formatted datetime: 2022-01-01 12:00:00 71 72 # 将字符串解析为日期时间对象 73 # parsed = datetime.datetime.strptime("2023-07-23 11:30:00", "%Y-%m-%d %H:%M:%S") 74 parsed = datetime.datetime.strptime("2023-07-24 11:30:00", "%Y-%m-%d %H:%M:%S") 75 print("Parsed datetime:", parsed) # Parsed datetime: 2023-07-23 11:30:00 76 77 # 计算时间差 78 diff = parsed - now 79 print("Time difference:", diff) # Time difference: -1 day, 23:59:48.185118 | Time difference: 23:57:45.012680 80 81 # 修改日期时间对象的某个部分,要全改 82 modified = dt.replace(year=2024, hour=13) 83 print("Modified datetime:", modified) # Modified datetime: 2024-01-01 13:00:00
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!