whenwords实战指南:如何在Python中快速集成时间格式化功能
whenwords实战指南如何在Python中快速集成时间格式化功能【免费下载链接】whenwordsA relative time formatting library, with no code.项目地址: https://gitcode.com/gh_mirrors/wh/whenwordswhenwords是一个无代码的相对时间格式化开源库支持Python、Ruby、Rust等多种语言能轻松实现3小时前、2天内等人类友好的时间表达方式。本指南将带你快速掌握在Python项目中集成whenwords的方法让时间处理变得简单高效。快速了解whenwords核心功能whenwords提供五大核心函数覆盖时间格式化与解析的常见场景timeago将时间戳转换为相对时间字符串如3小时前或in 2天duration将秒数格式化为人类可读的持续时间如2小时30分钟parse_duration解析持续时间字符串为秒数如将2h30m转换为9000秒human_date返回上下文日期字符串如Today、Yesterday或March 5date_range智能格式化日期范围如March 5–7, 2024这些功能全部通过纯函数实现无副作用确保在不同环境下的一致性和可靠性。准备工作获取whenwords项目首先需要将whenwords项目克隆到本地git clone https://gitcode.com/gh_mirrors/wh/whenwords cd whenwords项目结构简洁明了核心文件包括SPEC.md详细的功能规范文档tests.yaml语言无关的测试用例INSTALL.md安装说明生成Python实现代码whenwords的独特之处在于它本身不包含代码而是通过规范和测试用例来指导实现。生成Python代码只需简单几步使用AI工具生成代码打开你喜欢的AI工具如Claude、Codex或Cursor粘贴以下提示Implement the whenwords library in Python. 1. Read SPEC.md for complete behavior specification 2. Parse tests.yaml and generate a test file 3. Implement all five functions: timeago, duration, parse_duration, human_date, date_range 4. Run tests until all pass 5. Place implementation in whenwords.py All tests.yaml test cases must pass. See SPEC.md Testing section for test generation examples.AI工具会根据SPEC.md中的详细规范和tests.yaml中的测试用例生成完整的Python实现代码。手动实现可选如果你更倾向于手动实现可以参考SPEC.md中的详细规范。以下是各函数的核心要点timeago根据时间差选择合适的时间单位遵循SPEC中定义的阈值规则duration将秒数转换为年、月、日、时、分、秒等单位支持紧凑模式和最大单位限制parse_duration支持多种输入格式包括紧凑格式如2h30m、详细格式如2 hours 30 minutes和冒号格式如2:30human_date根据参考日期返回上下文相关的日期字符串date_range智能处理日期范围合并相同的年份和月份信息测试实现代码生成代码后需要验证是否通过所有测试用例。测试文件应包含tests.yaml中定义的所有测试例如def test_timeago_2_minutes_ago_90_seconds(): result timeago(1704067110, reference1704067200) assert result 2 minutes ago def test_duration_compact_1h1m(): result duration(3661, options{compact: True}) assert result 1h 1m运行测试确保所有测试用例都通过python -m pytest test_whenwords.py在Python项目中使用whenwords基本用法示例以下是whenwords五个核心函数的简单示例from whenwords import timeago, duration, parse_duration, human_date, date_range import time # 获取当前时间戳 now time.time() # timeago示例 past_time now - 3600 # 1小时前 print(timeago(past_time, now)) # 输出: 1 hour ago # duration示例 print(duration(9000)) # 输出: 2 hours, 30 minutes print(duration(9000, {compact: True})) # 输出: 2h 30m # parse_duration示例 print(parse_duration(2h30m)) # 输出: 9000 # human_date示例 yesterday now - 86400 # 昨天 print(human_date(yesterday, now)) # 输出: Yesterday # date_range示例 start now - 86400 * 3 # 3天前 end now print(date_range(start, end)) # 输出类似: August 3–6, 2026处理不同的时间格式whenwords支持多种时间格式输入包括Unix时间戳、ISO 8601字符串和Python原生datetime对象from datetime import datetime # 使用ISO 8601字符串 print(timeago(2024-01-01T00:00:00Z, now)) # 使用datetime对象 dt datetime(2024, 1, 1) print(human_date(dt, now))错误处理whenwords会根据Python习惯抛出ValueError异常使用时建议添加适当的错误处理try: parse_duration(invalid duration) except ValueError as e: print(f解析失败: {e})高级用法和最佳实践自定义时间单位虽然whenwords默认提供了标准的时间单位处理但你可以根据需要扩展功能例如添加毫秒或世纪单位。性能优化对于需要处理大量时间格式转换的场景可以考虑缓存常用结果或预计算时间差。时区处理whenwords默认使用UTC时区如需处理其他时区可以在转换为Unix时间戳之前进行时区调整from pytz import timezone tz timezone(America/New_York) local_dt tz.localize(datetime(2024, 1, 1)) timestamp local_dt.timestamp() print(human_date(timestamp, now))总结whenwords提供了一种简单而强大的方式来处理Python中的时间格式化需求。通过遵循本指南你可以快速将whenwords集成到自己的项目中轻松实现各种时间相关的功能。无论是构建用户界面、处理日志数据还是分析时间序列whenwords都能帮助你以更自然、更友好的方式展示时间信息。要了解更多细节请参考项目中的SPEC.md和tests.yaml文件它们提供了关于函数行为的完整规范和测试用例。【免费下载链接】whenwordsA relative time formatting library, with no code.项目地址: https://gitcode.com/gh_mirrors/wh/whenwords创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

《Java 微服务 Spring Cloud 线上高并发排障实战》

《Java 微服务 Spring Cloud 线上高并发排障实战》

《Java 微服务 Spring Cloud 线上高并发排障实战》 作者: 张迪 (Dicky Zhang) (迪哥)技术方向: AI 云原生后端架构、智能微服务治理、AI 辅助性能优化、大模型应用后端底座 💡 导语与现场排障背景 在最近一次线上压测复盘中,我们的 AI 智能服务集群触…

2026/8/30 14:23:57 阅读更多 →
OpenBOR跨平台构建:从概念到部署的模块化开发指南

OpenBOR跨平台构建:从概念到部署的模块化开发指南

OpenBOR跨平台构建:从概念到部署的模块化开发指南 【免费下载链接】openbor OpenBOR is the ultimate 2D side scrolling engine for beat em ups, shooters, and more! 项目地址: https://gitcode.com/gh_mirrors/op/openbor 构建理念:理解Open…

2026/9/2 23:42:38 阅读更多 →
霞鹜臻楷UVS功能详解:如何设置蝌蚪引号宽度提升排版美感

霞鹜臻楷UVS功能详解:如何设置蝌蚪引号宽度提升排版美感

霞鹜臻楷UVS功能详解:如何设置蝌蚪引号宽度提升排版美感 【免费下载链接】LxgwZhenKai 霞鹜臻楷:基于「霞鹜文楷」衍生,前期手动加粗调整字形,后期由 AI 生成字形辅助补字的开源中文字体。A bolder weight, AI-assisted font deri…

2026/8/28 10:11:24 阅读更多 →

最新新闻

Git 源码仓库全景指南:定位、构建安装、版本机制、文档体系与贡献工作流

Git 源码仓库全景指南:定位、构建安装、版本机制、文档体系与贡献工作流

Git 源码仓库全景指南:定位、构建安装、版本机制、文档体系与贡献工作流 【免费下载链接】git Git Source Code Mirror - This is a publish-only repository but pull requests can be turned into patches to the mailing list via GitGitGadget (https://gitgitg…

2026/9/4 14:07:55 阅读更多 →
零基础学Python · 第 20 课|列表常用方法与内置函数

零基础学Python · 第 20 课|列表常用方法与内置函数

进行分类、、实施复制这样的一套动作, 进行求和、求最大值、求最小值、计算长度这四大类操作。 20.1 原地方法 vs 新列表函数 原地 vs 新建 nums [3, 1, 4, 1, 5] # 方法大多"原地修改": 改自己, 返回 None nums.sort() # 排序后 nums 变了, 但 sor…

2026/9/4 14:07:55 阅读更多 →
Python遍历数组还在for循环?这招快10倍,代码直接起飞

Python遍历数组还在for循环?这招快10倍,代码直接起飞

数组遍历全解析于编程之时, 用以表示数组的通常是列表list, 此为一种极为常见的数据结构。对数组开展遍历操作, 乃是日常编程里常常会碰到的任务。它能让我们逐个去访问数组中的元素, 之后做相应处理。本文会把有关数组遍历的基础概念、使用方法、常见实践以及最佳实践予以详细…

2026/9/4 14:07:55 阅读更多 →
C语言基础:从文件概念到输入输出函数

C语言基础:从文件概念到输入输出函数

目录一、C语言中文件的相关概念二、C语言中的变量三、C语言中的常量四、定义常量五、进制转换六、输入输出函数一、C语言中文件的相关概念在C语言中分为三种文件:源文件(.c)、头文件(.h)和库文件(系统中&am…

2026/9/4 14:07:55 阅读更多 →
基于Zynq的FPGA开发:Vitis工程搭建与UART/GPIO实战

基于Zynq的FPGA开发:Vitis工程搭建与UART/GPIO实战

从近似0基础开始FPGA开发 -- part.5 Vitis工程搭建(Uart及GPIO)前几篇我们把Vivado里的硬件工程搭了起来,Block Design里也把Zynq PS核配好,并且导出了xsa硬件描述文件。但说实话,到这一步,很多刚开始接触Z…

2026/9/4 14:06:55 阅读更多 →
linux系统操作

linux系统操作

含义:查看当前时间 date 含义:查看系统盘磁盘空间占用大小 df -h 含义:端口监听信息查看 netstat -lntp netstat -lntp | grep 80 含义:查看哪个进程在监听80端口 netstat -lntp | grep nginx 含义:查看nginx监听的…

2026/9/4 14:06:55 阅读更多 →

日新闻

ESP32S2嵌入式收音机全栈开发实战指南

ESP32S2嵌入式收音机全栈开发实战指南

简介:本资源是一个基于ESP32-S2芯片的嵌入式综合实践项目,面向本科毕业设计、课程设计及实训开发人员,聚焦网络收音机与FM收音机双模功能实现,融合ESP-IDF框架、ESP-ADF音频开发库与LVGL图形界面库,具备完整软硬件协同…

2026/9/4 0:00:28 阅读更多 →
WorkBuddy+Python实战:从零搭建商品库存管理系统

WorkBuddy+Python实战:从零搭建商品库存管理系统

最近想自己动手做一个“商品库存管理系统”的人变多了。很多开网店、做小团队ERP选型、或者刚学Python的读者,不是不想用系统,而是被传统开发路径劝退了:要装数据库,要写后端接口,要学前端页面,还要考虑多人…

2026/9/4 0:00:28 阅读更多 →
旅游情感分析:基于Python的垂直场景深度解析

旅游情感分析:基于Python的垂直场景深度解析

简介:本资源是一份面向计算机专业本科生的毕业设计实践项目,聚焦旅游行业真实场景,解决旅游平台对用户评论情感倾向自动识别与管理的需求。系统基于Python 3.9.11与Anaconda环境构建,集成携程、马蜂窝双平台爬虫模块,并…

2026/9/4 0:00:28 阅读更多 →

周新闻

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

每年校招季我都会接触不少准备数据库方向笔试的同学,看到最多的状态就是:简历上写着“熟悉 MySQL”“了解索引优化”,一碰到数据库管理工程师的笔试卷,却在索引、事务、锁、备份恢复这些题目上翻车。网易这套 2018 校园招聘数据库…

2026/9/4 10:54:27 阅读更多 →
数字电路时序基石:深入理解建立时间与保持时间

数字电路时序基石:深入理解建立时间与保持时间

1. 这不是“背公式”的事:时间参数到底在约束什么你翻过数字电路教材,一定见过这两个词:建立时间(Setup Time)和保持时间(Hold Time)。它们常被并列写在触发器(Flip-Flop&#xff09…

2026/9/3 4:22:01 阅读更多 →
蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

1. 项目缘起:从赛题到超声波测距机的诞生第八届蓝桥杯单片机设计与开发国赛的题目,我至今记忆犹新。它没有直接给出一个花哨的名字,而是用“超声波测距机”这个朴实无华的功能描述,精准地勾勒出了考核的核心。对于当时备赛的我而言…

2026/9/3 4:22:59 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/3 4:17:49 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/3 4:18:56 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/4 9:37:01 阅读更多 →