马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
三个模块&三条print(),玩转python时间的上上下下,优雅打印“时间暗码”。
条记模板由python脚本于2025-03-23 22:50:43创建,本篇条记适当精确研究时间/日期的coder翻阅。
【学习的细节是高兴的历程】
博客的核心代价:在于输出思考与履历,而不光仅是知识的简单复述。
- Python官网:
这里,才 python 前沿。英文原版,原汁原味,才是寻根溯源的正统。😎
地点:https://www.python.org/
- Free:
大咖免费“圣级”秘笈《 python 完全自学教程》不光仅是根本那么简单……
地点:https://lqpybook.readthedocs.io/
自学并不是什么机密的东西,一个人一辈子自学的时间,总是比在学校学习的时间长;没有老师的时间总是比有老师的时间多。
—— 华罗庚
---== 彰显C位 ==---
- 您,可以在品评区誊写任何想法
- (我将在看到的第一时间回应)
-
(预置清闲)
[/table] ---== 彰显C位 ==---
三个模块&三条print() “时间暗码” ( 玩转python时间上上下下)
本文质量分:
【 96 96 96 】
本文地点:articleUrl
CSDN质量分查询入口:
◆ python“时间暗码”
🔥 玩转datetime模块的七种武器 🔥
📜 脚本定位(python 源码)
本脚本为时间利用演示专用,通过刻意筹划的变量覆盖与范例转换,显现Python时间处理惩罚的精华。适当已把握根本语法,想深入明确时间盘算本质的学习者。
deltaday.py
- #!/usr/bin/env python3
- from datetime import datetime, timedelta, date
- '''
- filename = deltaday.py
- 本脚本是刻意的“干嚎”,东拉西扯一些“意象”,为炼炼日期/时间的操控流程。😎
- '''
- # Base Var #
- today = datetime.now().date()
- yestday = (today - timedelta(days=1))
- date = date(2025, 3, 20)
- '''
- Python底层逻辑:
- datetime.date
- 与datetime.datetime.date
- 是相同对象,可以直接运算。
- '''
- print(
- f"\n\n今天和昨天相差:{today - yestday}天"
- f"\n今天和昨天相差:{(today - yestday).days}天"
- f"\n今天和{date}相差:{today - date}天"
- f"\n今天和{date}相差:{(date.today() - date).days}天"
- )
- # “秒”级时间(物理时间)差计算 #
- time_tuple = 15, 36, 00
- time = timedelta(seconds=sum(i*60**k for k,i in enumerate(time_tuple[::-1])))
- now = datetime.now()
- date = datetime(date.year, date.month, date.day)
- seconds = (now - date - timedelta(seconds=sum(i*60**k for k,i in enumerate(time_tuple[::-1])))).seconds
- print(
- f"\n\n{date.date()}到现在,已过{now - date}"
- f"\n{date.date()}到现在+{':'.join(map(str, time_tuple))}是:{now - date + time}"
- f"\n{date.date()}到现在+{time}是:{(now - date + time)}"
- f"\n\n{(now - date - timedelta(seconds=sum(i*60**k for k,i in enumerate(time_tuple[::-1])))).seconds = }s\n是:{seconds//60**2}:{(seconds%60**2)//60}:{seconds%60}"
- f"\n{(now - date - timedelta(seconds=sum(i*60**k for k,i in enumerate(time_tuple[::-1])))).seconds = }s\n是:{timedelta(seconds=seconds)}"
- )
- # 如有负差值,可以补偿校正 #
- seconds = 105599
- time = now - timedelta(seconds=seconds)
- delta = now - time
- deltoday = now - date
- localday = (datetime.now() - datetime.now()).days
- print(
- f"\n\n现在距{timedelta(seconds=seconds)}以前:{delta.days}天"
- f"\n{today}距{date.date()}:{deltoday.days}天"
- f"\n现在距刚才:{localday + timedelta(hours=24).days if localday < 0 else localday}天"
- f"\n\n{now = }"
- f"\n简单去除“微秒”:{str(now).split('.')[0] = }"
- f"\n简单去除“微秒”:{str(now).split('.')[0]}"
- )
- '''
- 我设计的这段儿简单代码示例,基本涵盖日期/时间的一般操作(运算、格式化调用/输出、对象转换)。
- 阅读并理解之后,对python之日期/时间工具,将会有更深的领悟。😉
- '''
- '''
- 命名“重复”!?
- No! No!!
- 这是我故意的,被重写的变量都是已完成使命的战士,他该回营休整了,我派人接下了工作。
- “书写代码时,一定明白自己在干什么”就好。😎
- '''
复制代码 🎯 核心功能演示
1. 自然日差盘算
- today = datetime.now().date() # 今日装甲车
- yestday = today - timedelta(days=1) # 昨日战车
- print(f"时间差: {today - yestday}") # 输出:1 day, 0:00:00
复制代码 2. 跨范例时间运算
- date_obj = date(2025,3,20) # 纯日期战士
- datetime_obj = datetime(date_obj.year, date_obj.month, date_obj.day) # 升级为时间武士
- print(datetime.now() - datetime_obj) # 自动计算物理时间差
复制代码 3. 时间邪术格式化
- now = datetime.now()
- print(f"{now}") # 自动ISO格式:2023-10-20 15:30:45.123456
- print(str(now).split('.')[0]) # 截断微秒:2023-10-20 15:30:45
复制代码 🔥 代码亮点剖析
变量覆盖计谋
- date = date(2025,3,20) # 第一形态:日期容器
- date = datetime(*date_tuple) # 第二形态:时间戳战士
复制代码 武士道精力:变量完成任务即退场,新兵士担当战场
时间差黑科技
- time = timedelta(seconds=sum(i*60**k for k,i in enumerate((15,36,0)[::-1]))
- # 等价于:15*3600 + 36*60 + 0 = 57600秒
复制代码 负差值赔偿术
- localday = (datetime.now() - datetime.now()).days # 必为0
- print(localday + timedelta(hours=24).days if localday <0 else localday) # 防御性编程
复制代码 ⚠️ 注意事项
- 变量覆盖风险
- date = date(2025,3,20) # 初始为date类型
- date = "时间字符串" # 覆盖后失去日期特性
复制代码 - 时区隐身术
本脚本默认利用本地时区,跨时区需加载zoneinfo模块:
- from zoneinfo import ZoneInfo
- datetime.now(ZoneInfo('Asia/Shanghai'))
复制代码 - 闰秒陷阱
体系主动处理惩罚闰秒,人工盘算大概产生弊端
🎓 关键知识点
- 范例转换表
| 利用转换方式结果范例datetime→date.date()datedate→datetimedatetime.combine()datetime时间戳→datetimefromtimestamp()datetime | - 时间差机密花圃
| - delta = datetime1 - datetime2
- print(delta.days) # 完整天数
- print(delta.seconds) # 剩余秒数(<86400)
- print(delta.total_seconds()) # 总秒数
复制代码 🌟 脚本输出示例 | | - 今天和昨天相差:1 day, 0:00:00天
- 2025-03-20到现在,已过-518 days, 22:24:00
- 现在距1 day, 5:59:59以前:1天
- 2023-10-20距2025-03-20:-517天
- now = 2023-10-20 15:30:45.123456
- 简单去除"微秒":'2023-10-20 15:30:45'
复制代码 ⚔️ 悟透时间之道,方成代码武士! | | | 禅语:时间如流水,代码似扁舟。智者随颠簸,愚者逆水游。 | | | |
| 2025 2025 2025
| | 上一篇: | | Python功能完善的宝库——内置的强大“武器库”builtins(builtins模块包罗了Python大量的内置对象(函数、非常和范例等),她是Python的内置武器库,堪称功能完善的宝库) | | | 我的HOT博: | | | | 本次共计网络449篇博文条记信息,总阅读量70.99w。数据收罗于2025年03月17日 00:27:47,用时10分46.1秒。阅读量不小于6.00k的有 10 10 10篇。 | | | | | - 让QQ群昵称色变的神奇代码
| | 地点: | | 欣赏阅读:63,055 | | 点赞:25 收藏:90 品评:17 | | (本篇条记于2022-01-18 19:15:08初次发布,末了修改于2022-01-20 07:56:47) | | | - Python列表(list)反序(降序)的7种实现方式
| | 地点: | | 欣赏阅读:14,196 | | 点赞:9 收藏:40 品评:8 | | (本篇条记于2022-12-11 23:54:15初次发布,末了修改于2023-03-20 18:13:55) | | | - 个人信息提取(字符串)
| | 地点: | | 欣赏阅读:10,461 | | 点赞:3 收藏:21 | | (本篇条记于2022-04-18 11:07:12初次发布,末了修改于2022-04-20 13:17:54) | | | - pandas 数据范例之 DataFrame
| | 地点: | | 欣赏阅读:10,358 | | 点赞:7 收藏:40 | | (本篇条记于2022-05-01 13:20:17初次发布,末了修改于2022-05-08 08:46:13) | | | - 统计字符串字符出现的次数
| | 地点: | | 欣赏阅读:8,535 | | 点赞:5 收藏:27 | | (本篇条记于2023-05-06 22:28:18初次发布,末了修改于2023-05-12 06:21:40) | | | - 罗马数字转换器
| 罗马数字天生器 | | 地点: | | 欣赏阅读:8,393 | | 收藏:3 | | (本篇条记于2022-01-19 23:26:42初次发布,末了修改于2022-01-21 18:37:46) | | | - Python字符串居中体现
| | 地点: | | 欣赏阅读:8,190 | | 点赞:1 收藏:12 品评:1 | | | - 回车符、换行符和回车换行符
| | 地点: | | 欣赏阅读:6,921 | | 点赞:2 收藏:4 | | (本篇条记于2022-02-24 13:10:02初次发布,末了修改于2022-02-25 20:07:40) | | | - python清屏
| | 地点: | | 欣赏阅读:6,282 | | 点赞:1 收藏:10 | | | - 我的 Python.color() (Python 色彩打印控制)
| | 地点: | | 欣赏阅读:6,192 | | 点赞:2 收藏:9 | | (本篇条记于2022-02-28 22:46:21初次发布,末了修改于2022-03-03 10:30:03) | | | 保举条件 阅读量突破6.00k (更多热博,请点击蓝色笔墨跳转翻阅) | | - 截屏图片
| | | | (此文涉及ChatPT,曾被csdn多次下架,前几日又因新 发条记被误杀而落马。躺“未过审”还不如采取站 ,采取站还不如永世不见。😪值此年底打扫,果 断移除。留此截图,以识“曾经”。2023-12-31) | | | |
| 2 0 2 5 2 0 2 5 2 0 2 5
| | 佳构文章: | | | | - 好 文力荐:齐伟书稿 《python 完全自学教程》 Free连载(已完稿并集结成书,尚有PDF版本百度网盘永 久分享,点击跳转 免费🆓下载。)
| - OPP三大特性:封装中的property
| - 通过内置 对象明确python
| - 正则表达式
| - python中“*”的作用
| - Python 完全自学手册
| - 海象运算符
| - Python中的 `!=`与`is not`差别
| - 学习编程的精确方法
| | 泉源:老齐课堂 | ◆ Python 入门指南【Python 3.6.3】 | | 好文力 荐: | | | | - 全栈范畴优质创作者——[寒 佬]博文“非技能文—关于英语和怎样精确的提问”,“英语”和“会提问”是编程学习的两大利器。
| - 【8大编程语言的实用范畴】先别发急选语言学编程,先看它们夺目嘛
| - 靠谱步调员的好风俗
| - 大佬帅地的优质好文“函 数功能、竣事条件、函数等价式”三大要素让您认清递归
| CSDN实用本领博文: | | | | - 8个好用到爆的Python实用本领
| - python忽略告诫
| - Python代 码编写规范
| - Python的docstring规范(分析文档的规范写法)
| | [table] |
|