三个print优雅打印datetime模块的“时间暗码”

[复制链接]
发表于 2025-10-10 01:44:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
三个模块&三条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
  1. #!/usr/bin/env python3
  2. from datetime import datetime, timedelta, date
  3. '''
  4. filename = deltaday.py
  5. 本脚本是刻意的“干嚎”,东拉西扯一些“意象”,为炼炼日期/时间的操控流程。😎
  6. '''
  7. # Base Var #
  8. today = datetime.now().date()
  9. yestday = (today - timedelta(days=1))
  10. date = date(2025, 3, 20)
  11. '''
  12. Python底层逻辑:
  13. datetime.date
  14. 与datetime.datetime.date
  15. 是相同对象,可以直接运算。
  16. '''
  17. print(
  18.     f"\n\n今天和昨天相差:{today - yestday}天"
  19.     f"\n今天和昨天相差:{(today - yestday).days}天"
  20.     f"\n今天和{date}相差:{today - date}天"
  21.     f"\n今天和{date}相差:{(date.today() - date).days}天"
  22.         )
  23. # “秒”级时间(物理时间)差计算 #
  24. time_tuple = 15, 36, 00
  25. time = timedelta(seconds=sum(i*60**k for k,i in enumerate(time_tuple[::-1])))
  26. now = datetime.now()
  27. date = datetime(date.year, date.month, date.day)
  28. seconds = (now - date - timedelta(seconds=sum(i*60**k for k,i in enumerate(time_tuple[::-1])))).seconds
  29. print(
  30.     f"\n\n{date.date()}到现在,已过{now - date}"
  31.     f"\n{date.date()}到现在+{':'.join(map(str, time_tuple))}是:{now - date + time}"
  32.     f"\n{date.date()}到现在+{time}是:{(now - date + time)}"
  33.     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}"
  34.     f"\n{(now - date - timedelta(seconds=sum(i*60**k for k,i in enumerate(time_tuple[::-1])))).seconds = }s\n是:{timedelta(seconds=seconds)}"
  35.         )
  36. # 如有负差值,可以补偿校正 #
  37. seconds = 105599
  38. time = now - timedelta(seconds=seconds)
  39. delta = now - time
  40. deltoday = now - date
  41. localday = (datetime.now() - datetime.now()).days
  42. print(
  43.     f"\n\n现在距{timedelta(seconds=seconds)}以前:{delta.days}天"
  44.     f"\n{today}距{date.date()}:{deltoday.days}天"
  45.     f"\n现在距刚才:{localday + timedelta(hours=24).days if localday < 0 else localday}天"
  46.     f"\n\n{now = }"
  47.     f"\n简单去除“微秒”:{str(now).split('.')[0] = }"
  48.     f"\n简单去除“微秒”:{str(now).split('.')[0]}"
  49.         )
  50. '''
  51. 我设计的这段儿简单代码示例,基本涵盖日期/时间的一般操作(运算、格式化调用/输出、对象转换)。
  52. 阅读并理解之后,对python之日期/时间工具,将会有更深的领悟。😉
  53. '''
  54. '''
  55. 命名“重复”!?
  56. No! No!!
  57. 这是我故意的,被重写的变量都是已完成使命的战士,他该回营休整了,我派人接下了工作。
  58. “书写代码时,一定明白自己在干什么”就好。😎
  59. '''
复制代码

🎯 核心功能演示

1. 自然日差盘算

  1. today = datetime.now().date()  # 今日装甲车
  2. yestday = today - timedelta(days=1)  # 昨日战车
  3. print(f"时间差: {today - yestday}")  # 输出:1 day, 0:00:00
复制代码
2. 跨范例时间运算

  1. date_obj = date(2025,3,20)  # 纯日期战士
  2. datetime_obj = datetime(date_obj.year, date_obj.month, date_obj.day)  # 升级为时间武士
  3. print(datetime.now() - datetime_obj)  # 自动计算物理时间差
复制代码
3. 时间邪术格式化

  1. now = datetime.now()
  2. print(f"{now}")  # 自动ISO格式:2023-10-20 15:30:45.123456
  3. print(str(now).split('.')[0])  # 截断微秒:2023-10-20 15:30:45
复制代码

🔥 代码亮点剖析

变量覆盖计谋

  1. date = date(2025,3,20)  # 第一形态:日期容器
  2. date = datetime(*date_tuple)  # 第二形态:时间戳战士
复制代码
  武士道精力:变量完成任务即退场,新兵士担当战场
  时间差黑科技

  1. time = timedelta(seconds=sum(i*60**k for k,i in enumerate((15,36,0)[::-1]))
  2. # 等价于:15*3600 + 36*60 + 0 = 57600秒
复制代码
负差值赔偿术

  1. localday = (datetime.now() - datetime.now()).days  # 必为0
  2. print(localday + timedelta(hours=24).days if localday <0 else localday)  # 防御性编程
复制代码

⚠️ 注意事项


  • 变量覆盖风险
    1. date = date(2025,3,20)  # 初始为date类型
    2. date = "时间字符串"  # 覆盖后失去日期特性
    复制代码
  • 时区隐身术
    本脚本默认利用本地时区,跨时区需加载zoneinfo模块:
    1. from zoneinfo import ZoneInfo
    2. datetime.now(ZoneInfo('Asia/Shanghai'))
    复制代码
  • 闰秒陷阱
    体系主动处理惩罚闰秒,人工盘算大概产生弊端

🎓 关键知识点


  • 范例转换表
       
    利用转换方式结果范例datetime→date.date()datedate→datetimedatetime.combine()datetime时间戳→datetimefromtimestamp()datetime
  • 时间差机密花圃
    1. delta = datetime1 - datetime2
    2. print(delta.days)          # 完整天数
    3. print(delta.seconds)       # 剩余秒数(<86400)
    4. print(delta.total_seconds()) # 总秒数
    复制代码

    🌟 脚本输出示例
    1. 今天和昨天相差:1 day, 0:00:00天
    2. 2025-03-20到现在,已过-518 days, 22:24:00
    3. 现在距1 day, 5:59:59以前:1天
    4. 2023-10-20距2025-03-20:-517天
    5. now = 2023-10-20 15:30:45.123456
    6. 简单去除"微秒":'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]

            回复

            使用道具 举报

            登录后关闭弹窗

            登录参与点评抽奖  加入IT实名职场社区
            去登录
            快速回复 返回顶部 返回列表