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

news/2025/3/29 5:55:16/

三个模块&三条print(),玩转python时间的上上下下,优雅打印“时间密码”。


  笔记模板由python脚本于2025-03-23 22:50:43创建,本篇笔记适合正确研究时间/日期的coder翻阅。


学习的细节是欢悦的历程】

  博客的核心价值在于输出思考与经验,而不仅仅是知识的简单复述


  • Python官网
      这里,才 python 前沿。英文原版,原汁原味,才是寻根溯源的正统。😎
    地址:https://www.python.org/

  • Free
      大咖免费“圣级”秘笈《 python 完全自学教程》不仅仅是基础那么简单……
    地址:https://lqpybook.readthedocs.io/



  自学并不是什么神秘的东西,一个人一辈子自学的时间,总是比在学校学习的时间长;没有老师的时候总是比有老师的时候多。
            —— 华罗庚


---== 彰显C位 ==---

  1. ,可以在评论区书写任何想法
  2. (我将在看到的第一时间回应)

  3. (预置空地)
---== 彰显C位 ==---

我的座右铭图片,上书中文“等风来,不如追风去……”



三个模块&三条print()
“时间密码”
( 玩转python时间上上下下)



本文质量分:

96 96 96

本文地址: articleUrl

CSDN质量分查询入口:http://www.csdn.net/qc


目 录

  • ◆ python“时间密码”
    • 📜 脚本定位(python 源码)
    • 🎯 核心功能演示
      • 1. 自然日差计算
      • 2. 跨类型时间运算
      • 3. 时间魔法格式化
    • 🔥 代码亮点解析
      • 变量覆盖策略
      • 时间差黑科技
      • 负差值补偿术
    • ⚠️ 注意事项
    • 🎓 关键知识点
    • 🌟 脚本输出示例


◆ 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)  # 防御性编程

⚠️ 注意事项

  1. 变量覆盖风险

    date = date(2025,3,20)  # 初始为date类型
    date = "时间字符串"  # 覆盖后失去日期特性
    
  2. 时区隐身术
    本脚本默认使用本地时区,跨时区需加载zoneinfo模块:

    from zoneinfo import ZoneInfo
    datetime.now(ZoneInfo('Asia/Shanghai'))
    
  3. 闰秒陷阱
    系统自动处理闰秒,人工计算可能产生误差


🎓 关键知识点

  1. 类型转换表

    操作转换方式结果类型
    datetime→date.date()date
    date→datetimedatetime.combine()datetime
    时间戳→datetimefromtimestamp()datetime
  2. 时间差秘密花园

    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篇。


  1. 让QQ群昵称色变的神奇代码
    地址:https://blog.csdn.net/m0_57158496/article/details/122566500
    浏览阅读:63,055
    点赞:25 收藏:90 评论:17
    (本篇笔记于2022-01-18 19:15:08首次发布,最后修改于2022-01-20 07:56:47)

  2. Python列表(list)反序(降序)的7种实现方式
    地址:https://blog.csdn.net/m0_57158496/article/details/128271700
    浏览阅读:14,196
    点赞:9 收藏:40 评论:8
    (本篇笔记于2022-12-11 23:54:15首次发布,最后修改于2023-03-20 18:13:55)

  3. 个人信息提取(字符串)
    地址:https://blog.csdn.net/m0_57158496/article/details/124244618
    浏览阅读:10,461
    点赞:3 收藏:21 
    (本篇笔记于2022-04-18 11:07:12首次发布,最后修改于2022-04-20 13:17:54)

  4. pandas 数据类型之 DataFrame
    地址:https://blog.csdn.net/m0_57158496/article/details/124525814
    浏览阅读:10,358
    点赞:7 收藏:40 
    (本篇笔记于2022-05-01 13:20:17首次发布,最后修改于2022-05-08 08:46:13)

  5. 统计字符串字符出现的次数
    地址:https://blog.csdn.net/m0_57158496/article/details/130517025
    浏览阅读:8,535
    点赞:5 收藏:27 
    (本篇笔记于2023-05-06 22:28:18首次发布,最后修改于2023-05-12 06:21:40)

  6. 罗马数字转换器|罗马数字生成器
    地址:https://blog.csdn.net/m0_57158496/article/details/122592047
    浏览阅读:8,393
    收藏:3 
    (本篇笔记于2022-01-19 23:26:42首次发布,最后修改于2022-01-21 18:37:46)

  7. Python字符串居中显示
    地址:https://blog.csdn.net/m0_57158496/article/details/122163023
    浏览阅读:8,190
    点赞:1 收藏:12 评论:1
  8. 回车符、换行符和回车换行符
    地址:https://blog.csdn.net/m0_57158496/article/details/123109488
    浏览阅读:6,921
    点赞:2 收藏:4 
    (本篇笔记于2022-02-24 13:10:02首次发布,最后修改于2022-02-25 20:07:40)

  9. python清屏
    地址:https://blog.csdn.net/m0_57158496/article/details/120762101
    浏览阅读:6,282
    点赞:1 收藏:10 
  10. 我的 Python.color() (Python 色彩打印控制)
    地址:https://blog.csdn.net/m0_57158496/article/details/123194259
    浏览阅读: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规范(说明文档的规范写法)


http://www.ppmy.cn/news/1582857.html

相关文章

第二天 开始Unity Shader的学习之旅之熟悉顶点着色器和片元着色器

Shader初学者的学习笔记 第二天 开始Unity Shader的学习之旅之熟悉顶点着色器和片元着色器 文章目录 Shader初学者的学习笔记前言一、顶点/片元着色器的基本结构① Shader "Unity Shaders Book/Chapter 5/ Simple Shader"② SubShader③ CGPROGRAM和ENDCG④ 指明顶点…

论文阅读 EEGNet

EEGNet: A Compact Convolutional Neural Network for EEG-based Brain-Computer Interfaces EEGNET网络结构解析与复现 | 青椒的学习笔记 0. 摘要 传统基于CNN的脑机接口&#xff08;BCI&#xff09;研究多针对单一类型的任务&#xff08;如P300分类、运动想象分类&#xff…

STC89C52单片机学习——第35节: [16-1] AD/DA

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难&#xff0c;但我还是想去做&#xff01; 本文写于&#xff1a;2025.03.23 51单片机学习——第35节: [16-1] AD/DA 前言开发板说明引用解答和科普一、AD问题…

Jackson的核心类与API方法:ObjectMapper、JsonNode、ObjectNode、ArrayNode

JSON数据的操作,系列文章: 《Jackson的核心类与API方法:ObjectMapper、JsonNode、ObjectNode、ArrayNode》 《Jackson的使用与创建Jackson工具类》 《Jackson使用ObjectNode对象实现JSON对象数据(一):增、删、改、查》 《Jackson使用ArrayNode对象实现JSON列表数据(二)…

VS代码生成工具ReSharper v2024.3——支持C# 13

ReSharper 是 Microsoft Visual Studio Marketplace上热门的扩展程序&#xff0c;您可以进行深度代码分析、智能代码协助、实时错误代码高亮显示、解决方案范围内代码分析、快速代码更正、一步完成代码格式化和清理、业界领先的自动代码重构、高级的集成单元测试方案&#xff0…

Vue 3 自定义指令:实现自动滚动效果

Vue 3 自定义指令&#xff1a;实现自动滚动效果的深度解析 在前端开发中&#xff0c;尤其是在使用 Vue 3 框架构建用户界面时&#xff0c;自定义指令为我们提供了一种强大且灵活的方式来扩展 HTML 元素的行为。今天&#xff0c;我们将深入探讨一个实用的 Vue 3 自定义指令——…

AI 生成 PPT 网站介绍与优缺点分析

随着人工智能技术不断发展&#xff0c;利用 AI 自动生成 PPT 已成为提高演示文稿制作效率的热门方式。本文将介绍几款主流的 AI PPT 工具&#xff0c;重点列出免费使用机会较多的网站&#xff0c;并对各平台的优缺点进行详细分析&#xff0c;帮助用户根据自身需求选择合适的工具…

Spring MVC 执行流程:一个请求在 Spring MVC 中是如何执行的?

当用户发送一个 HTTP 向 Spring MVC 应用&#xff0c;该请求在 Spring MVC 的执行流程如下&#xff1a; 当用户向 Spring MVC 发起一个 HTTP 请求&#xff0c;该请求会被 Dispatcher Servlet&#xff08;前端控制器&#xff09;拦截&#xff1b;DispatcherServlet 调用 Handler…