🤝 免骂声明:
- 本文
常用时间类型格式化操作经本蜀黎实战整理,旨在提供快速参考指南📝- 因各语言版本迭代及不同系统
环境差异,偶尔可能出现整理不全面之处,实属正常✅- 欢迎理性交流补充,喷子勿喷——毕竟你行你上来写,我敬你是条汉子,告诉我的你原文链接,我给你一键三连+转发👍!
- 若遇具体问题,请带图评论区留言,本蜀黎必拔码相助🤝
🔥【特别说明·时间篇章启航】🔥
- 各位兄弟姐妹请注意!本篇为《时间格式化·基础速通篇》🥉
⏳为何先学本篇?
-
覆盖日常开发中 90% 的
时间格式化场景🏆 -
解决
财务、审计、报表等业务的即时需求🥇 -
避免
老板电疗的「急救术」,先活下来再追求完美🥈
📚后续深度篇章预告
-
《时间函数·时区战斗篇》—— 跨时区系统如何避免「时间幽灵」🔎
-
《时间函数·源码解析篇》—— 各语言时间库的设计哲学与底层原理🎨
💡学习建议
-
本篇先掌握
基础生存技能✅ -
实战中遇到问题时再来查阅🚀
-
后续
深度篇章将系统讲解时间处理的「道」与「术」🎰
🎯记住虎山CTO的这句话
「👊先解决有没有,再解决好不好——格式化如用药,急则治其标,缓则治其本!」
📚 系列文章预告:
- 近期内容将聚焦编程基础构建,以
「原创知识矩阵」形式系统梳理核心概念。每篇如连续剧集般环环相扣,建议按顺序学习——知识点一锅端,疗效更持久!🔥
🧾【场景还原·小南的时间格式化危机】
📉 小南(抓狂地挥舞审计报告):
-
鸣人!凭证
时间格式混乱——有的2025/9/18,有的18-SEP-25,还有的1737216000时间戳! -
雷影老板要求:24小时内统一成『YYYY-MM-DD HH:MM:SS 周四』格式,否则全员手写
全年凭证台账!📆💥
🦊 鸣人(结印搓出影分身):
- 师姐别慌!我这就用
strftime()结印——等等...Go和Java怎么用来着?!」 - (影分身砰砰消失)「卡卡西老师!雏田!救命啊——😵
👁️ 卡卡西(雷切劈开乱码):
- 「啧,又是
时间格式化。日期如雷切劈开混沌,时间像写轮眼解析结构——雏田,用白眼看看时间本质!」👀
🌸 雏田(柔拳点穴式修复):
🍜鸣人...请、请这样用:
- Python用
strftime,Java用DateTimeFormatter,Go用Format("2006-01-02"),JS用Intl.DateTimeFormat...🎨 - 还、还有
星期转换要像点穴般精准...🎯
⚡ 雷影老板(电光炸裂):
- 「🌀三小时内不统一格式——你们就去给云隐村写一辈子
时间格式化脚本!」
🧘【扎马步·时间格式化心法】
-
%Y-%m-%d %H:%M:%S %a→ 标准财务格式(审计强迫症福音)📅 -
{0:%Y}年{0:%m}月{0:%d}日 → 中文日期(领导专属阅读版)📜 -
padStart(2, '0')→ 补零术(防止月份出现9而不是09)🔢 -
getDay()映射星期 → 数字转中文(防止输出3而不是周三)🗓️ -
Locale.CHINESE→ 本地化护体(防德式日期反向输出)🌍
🧪【四语言实机结印·时间格式化对比】
1. Python(写轮眼·一念格式化)
now = datetime.datetime.now()
print("{:%Y-%m-%d %H:%M:%S %a}".format(now)) # 2025-09-18 14:30:45 Thu
print("{0:%Y}年{0:%m}月{0:%d}日".format(now)) # 2025年09月18日
2. Java(柔拳·精准点穴)
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss E", Locale.CHINESE);
System.out.println(now.format(formatter)); // 2025-09-18 14:30:45 周四
3. Go(雷切·暴力格式化)
now := time.Now()
fmt.Println(now.Format("2006-01-02 15:04:05 Mon")) // 2025-09-18 14:30:45 Thu
4. JS(白眼·动态拼接)
const now = new Date();
console.log(now.toLocaleString('zh-CN', {
year: 'numeric', month: '2-digit', day: '2-digit',
hour: '2-digit', minute: '2-digit', second: '2-digit',
weekday: 'short'
}).replace(/年|月|日|,/g, '-')); // 2025-09-18 14:30:45 周四
📊【四语言时间格式化战力对比表】
| 语言 | 核心函数 | 星期处理 | 本地化支持 | 实战指数 |
|---|---|---|---|---|
| Python | strftime/format | %a→英文 %w→数字 | Locale需额外配置 | ⭐⭐⭐⭐ |
| Java | DateTimeFormatter | E→中文 | Locale.CHINESE | ⭐⭐⭐⭐⭐ |
| Go | Format("2006-01-02") | Mon→英文 | 需手动映射 | ⭐⭐⭐ |
| JS | Intl.DateTimeFormat | weekday: 'short' | 原生支持多语言 | ⭐⭐⭐⭐ |
关键对比:
- Python:
- 使用
%a显示英文缩写星期(如Mon),%w返回数字(0-6)🎰- 本地化需额外配置
locale模块,非开箱即用😱- Java:
E模式符号直接支持中文星期(如"周一")🥇- 通过
Locale.CHINESE轻松实现本地化🥈- 实战最佳:格式化API设计最完善🏆
- Go:
- 必须硬编码
2006-01-02这样的参考时间模板📌- 星期显示为英文缩写(如Mon),本地化需自行映射💎
- JS:
- 通过
weekday: 'short'配置星期显示格式🍱- 原生支持多语言,但Node.js环境依赖ICU数据完整性🌈
实战建议:
- 国际化项目首选 Java🥇
- 快速开发用 Python/JS🥈
- Go需自行封装本地化逻辑🥉
🌈格式化能力解析:
-
日期标准化:Java的
DateTimeFormatter最强大(原生中文星期)🏆 -
灵活性:Python的
format语法最简洁🥈 -
本地化:JS的
IntlAPI浏览器环境无敌🥇 -
底层控制:Go需记住
神秘数字2006-01-02🥉
⚠️【避坑提示·时间格式化界的“十八反”】
🚫 Go的格式化必须用2006-01-02 → 用其他日期直接报错!
// 错误示范(爆雷!)
fmt.Println(now.Format("2025-09-18")) // 输出乱码
// 正确示范
fmt.Println(now.Format("2006-01-02")) // 输出2025-09-18
💥 Java的Locale依赖系统设置 → 德区服务器输出Mittwoch(星期三)!
// 危险做法
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("E"); // 德区输出"Mittwoch"
// 安全做法
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("E", Locale.CHINESE); // 永远输出"周三"
🚫 JS的getDay()返回0-6 → 0是周日,不是周一!
// 错误映射(爆雷!)
const days = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"]; // 周日应该在第0位!
// 正确映射
const days = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"];
console.log(days[new Date().getDay()]); // 周三
💥 Python的%w星期数字0是周日 → 与JS一致但易混淆!
week = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"]
print(week[int("{:%w}".format(now))]) # 周三
🧪【实战融合术·四语言时间格式化】
Python(财务标准格式)
print("{:%Y-%m-%d %H:%M:%S %a}".format(now)) # 2025-09-18 14:30:45 Thu
Java(领导中文版)
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH时mm分ss秒 E", Locale.CHINESE);
System.out.println(now.format(formatter)); // 2025年09月18日 14时30分45秒 周四
Go(日志瘦身格式)
fmt.Println(now.Format("2006-01-02 15:04:05")) // 2025-09-18 14:30:45
JS(国际化输出)
console.log(new Intl.DateTimeFormat('en-US', {
dateStyle: 'full',
timeStyle: 'long'
}).format(now)); // Thursday, September 18, 2025 at 2:30:45 PM GMT+8
以下是本蜀黎整理
源码和截图⏬
1.Python源码⏬
import datetime
# ==================== 财务时间模块 ====================
# 标准账务日期格式 # 让时间穿上会计制服 📅
# 年月日中文分隔 # 账本专用文人历法 📜
# 时分秒精确切割 # 审计员的原子钟 ⏱️
# 年月日尖括号款 # 电子凭证防伪标记 🔐
# 精简版时间戳 # 流水线作业计时器 🏭
# 星期简写模式 # 财务部的周报触发器 📆
# 月份英文缩写 # 涉外报表的绅士风度 🎩
# ⚠️ERP_冷溪虎山:时间格式错误会引发税务稽查
now = datetime.datetime.now()
print(now)
print("{:%Y-%m-%d %H:%M:%S %a}".format(now))
print("{0:%Y} 年 {0:%m} 月 {0:%d} 日".format(now))
print("{0:%H} 时 {0:%M} 分 {0:%S} 秒".format(now))
print("{:%Y<%m>%d}".format(now))
print("{:%H:%M:%S}".format(now))
print("{:%a}".format(now))
print("{:%b}".format(now))
# 野生奥义:%w取星期数字(0=周日),用列表映射为中文
print("\n🍒🍒🍒🍒🍒🍒🍒🍒🍒以下是week")
week = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]
print(week[int("{:%w}".format(now))])
print("{:%c}".format(now))
2.Nodejs源码⏬
// ==================== 中药时间模块 ====================
// 标准炼丹日期格式 // 仙家历法记录仪 🧙
// 年月日干支变体 // 老黄历配伍指导 📜
// 时辰分钟精确版 // 子午流注计时器 ⏳
// 特殊符号分隔款 // 丹方加密时间锁 🔮
// 精简版时辰显示 // 药童速记模式 📝
// 星期简写模式 // 五行养生日程表 ☯️
// 月份本草简称 // 药材采收月历 🌿
// ⚠️虎山老药师:时辰错乱会炼出毒丹
const now = new Date();
// 1. 直接打印(类似 Python 的 now)
console.log(now.toString());
// 2. 格式化:YYYY-MM-DD HH:MM:SS Day
const options1 = {
year: 'numeric',
month: '2-digit',
day: '2-digit',
hour: '2-digit',
minute: '2-digit',
second: '2-digit',
weekday: 'short',
hour12: false
};
const formatted1 = new Intl.DateTimeFormat('zh-CN', options1).format(now)
.replace(/年|月|日|,|\s/g, match => {
if (match === '周') return '星期';
return match === ',' ? '-' : match;
})
.replace(/上午|下午/, '')
.padStart(19, '0'); // 补全格式
console.log(formatted1.replace(/(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2}) (..)/, `$1-$2-$3 $4:$5:$6 $7`));
// 3. 格式化:YYYY 年 MM 月 DD 日
const year = now.getFullYear();
const month = String(now.getMonth() + 1).padStart(2, '0');
const day = String(now.getDate()).padStart(2, '0');
console.log(`${year} 年 ${month} 月 ${day} 日`);
// 4. 格式化:HH 时 MM 分 SS 秒
const hours = String(now.getHours()).padStart(2, '0');
const minutes = String(now.getMinutes()).padStart(2, '0');
const seconds = String(now.getSeconds()).padStart(2, '0');
console.log(`${hours} 时 ${minutes} 分 ${seconds} 秒`);
// 5. 格式化:YYYY<MM>DD
console.log(`${year}<${month}>${day}`);
// 6. 格式化:HH:MM:SS
console.log(`${hours}:${minutes}:${seconds}`);
// 7. 格式化:Day (缩写)
const weekdays = ['日', '一', '二', '三', '四', '五', '六'];
const weekday = weekdays[now.getDay()];
console.log(`星期${weekday}`);
// 8. 格式化:Month (缩写)
const months = ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'];
console.log(months[now.getMonth()]);
console.log("\n🍒🍒🍒🍒🍒🍒🍒🍒🍒以下是week");
const week = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
console.log(week[now.getDay()]);
// 9. 格式化:locale date & time (类似 %c)
console.log(now.toLocaleString('zh-CN'));
3.Go源码⏬
package main
import (
"fmt"
"time"
)
// ==================== 仓储时间模块 ====================
// 标准入库日期格式 // 物流界的ISO认证 🏷️
// 年月日中文分隔 // 叉车司机识字版 📦
// 时分秒精确记录 // 智能仓库原子钟 ⚡
// 特殊符号分隔款 // 货架定位密码锁 🔑
// 精简版时间戳 // 快递面单专用款 🚛
// 星期简写模式 // 仓库猫值班表 🐱
// 月份英文缩写 // 跨境物流通行证 🌐
// ⚠️冷溪物流:时间错乱会导致货物穿越
func main() {
now := time.Now()
// 1. 直接打印(类似 Python 的 now)
fmt.Println(now)
// 2. 格式化:YYYY-MM-DD HH:MM:SS Day
fmt.Printf("%s\n", now.Format("2006-01-02 15:04:05 Mon"))
// 3. 格式化:YYYY 年 MM 月 DD 日
fmt.Printf("%d 年 %02d 月 %02d 日\n", now.Year(), now.Month(), now.Day())
// 4. 格式化:HH 时 MM 分 SS 秒
fmt.Printf("%02d 时 %02d 分 %02d 秒\n", now.Hour(), now.Minute(), now.Second())
// 5. 格式化:YYYY<MM>DD
fmt.Printf("%d<%02d>%02d\n", now.Year(), now.Month(), now.Day())
// 6. 格式化:HH:MM:SS
fmt.Printf("%02d:%02d:%02d\n", now.Hour(), now.Minute(), now.Second())
// 7. 格式化:Day (缩写)
fmt.Printf("%s\n", now.Format("Mon"))
// 8. 格式化:Month (缩写)
fmt.Printf("%s\n", now.Format("Jan"))
fmt.Println("\n🍒🍒🍒🍒🍒🍒🍒🍒🍒以下是week")
week := []string{"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"}
fmt.Println(week[now.Weekday()])
// 9. 格式化:locale date & time (类似 %c)
fmt.Println(now.Format(time.RFC1123))
}
4.Java源码⏬
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
// ==================== ERP时间模块 ====================
// 标准业务日期格式 // 数字世界的格林威治 ⏰
// 年月日中文分隔 // 领导专属阅读版 👔
// 时分秒精确切割 // 高并发事务计时器 💻
// 特殊符号分隔款 // 系统间加密时间锁 🔗
// 精简版时间戳 // 日志文件瘦身款 📄
// 星期简写模式 // 运维值班日历 📅
// 月份英文缩写 // 跨国分公司同步器 🌍
// ⚠️ERP老兵_冷溪虎山:时间不同步会引发数据虫洞
class main18 {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
// 1. 直接打印(类似 Python 的 now)
System.out.println(now);
// 2. 格式化:YYYY-MM-DD HH:MM:SS Day
DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss E", Locale.CHINESE);
System.out.println(now.format(formatter1));
// 3. 格式化:YYYY 年 MM 月 DD 日
DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyy 年 MM 月 dd 日");
System.out.println(now.format(formatter2));
// 4. 格式化:HH 时 MM 分 SS 秒
DateTimeFormatter formatter3 = DateTimeFormatter.ofPattern("HH 时 mm 分 ss 秒");
System.out.println(now.format(formatter3));
// 5. 格式化:YYYY<MM>DD
DateTimeFormatter formatter4 = DateTimeFormatter.ofPattern("yyyy<MM>dd");
System.out.println(now.format(formatter4));
// 6. 格式化:HH:MM:SS
DateTimeFormatter formatter5 = DateTimeFormatter.ofPattern("HH:mm:ss");
System.out.println(now.format(formatter5));
// 7. 格式化:Day (缩写)
DateTimeFormatter formatter6 = DateTimeFormatter.ofPattern("E", Locale.CHINESE);
System.out.println(now.format(formatter6));
// 8. 格式化:Month (缩写)
DateTimeFormatter formatter7 = DateTimeFormatter.ofPattern("MMM", Locale.CHINESE);
System.out.println(now.format(formatter7).replace(".", "")); // 去掉点
System.out.println("\n🍒🍒🍒🍒🍒🍒🍒🍒🍒以下是week");
String[] week = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
System.out.println(week[now.getDayOfWeek().getValue() - 1]); // 1=Monday, 7=Sunday
// 9. 格式化:locale date & time (类似 %c)
DateTimeFormatter formatter9 = DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss yyyy", Locale.CHINESE);
System.out.println(now.format(formatter9));
}
}
源码分享结束⏫
📜【结局:时间统一·老板惊叹】
⚡ 雷影老板(看着整齐的凭证时间轴目瞪口呆):
-
🚀这
时间格式...比我的雷遁还精准! -
🍜年终奖加十吨《时间格式化忍法帖】+
一乐拉面终身VIP!
🌸 小南(凭证时间轴化作千纸鹤飞散):
- 「🍜鸣人!下次用
Locale.CHINESE给所有日期加『中文变身』——让审计署再也挑不出刺!」
🦊 鸣人(啃着拉面嘟囔):
- 「🙏其实...时间格式化就像炼丹——火候多了糊,少了生,刚刚好才是真忍术!」
🧾【虎山CTO的终极总结】
-
时间格式化 →
子午流注,准时准点(系统生物钟)⏰ -
本地化 → 因地制宜,入乡随俗(跨国报表无忧)🌏
-
星期映射 → 经脉转换,气血互通(防数字转义崩溃)🔄
编程如用药,切忌胡乱君臣——💊 该用Locale时用点穴(Locale.CHINESE),该补零时用仙术(padStart)
⚠️ 免责声明(附因果律警告)
本代码已注入中医玄学能量,请谨慎使用:
- ✅ 允许白嫖,但白嫖不点赞可能导致:
- 下次面试官恰好问到这个算法
- 键盘自动打出
//这里感谢冷溪虎山CTO - 奶茶精准洒在刚写好的代码上
- ✅ 允许商用转发,但商用不注明出处可能触发:
- 系统类型混乱自动转型
- 数据库莫名存储"君臣佐使"字段
- ✅ 允许吐槽,但吐槽不带改进建议可能引发:
- 终生与老板N连鞭相爱相杀
🚀 现在立即行动:
- 点赞 → 吸收本篇算法精华+怪蜀黎脑洞思维
- 收藏 → 避免日后求医无门
- 关注 → 接收更多「中医+代码」脑洞
- 评论区留言 → 领取你的专属「算法药方」
⚠️ 友情提示:
- 本文内容过于硬核,建议点赞收藏转发三连,避免小编
心情波动导致文章神秘消失! - 毕竟小编今天可能爱答不理,明天可能高攀不起——
- 但你的收藏夹,永远是你最稳的知识备份!
🐶💻 (小声说:关我小黑屋?不存在的,备份早已同步GitHub/公众号/网盘!)
📚 往期爆文推荐,VIP轮换解锁:
📖Python/JS/Go/Java四语言同步学习,跨语言系列上线(别在纠结学什么单语言了)
🔍 没看过前传?快补课!
前1-10篇请移步至"PY-JS-GO-JAVA基础进阶学习系列"合集中阅读
- Python/JS/Go/Java同步学习(第十七篇)四语言“字符串格式化(下)“对照表: 财务“小南“纸式格式化术处理凭证内容崩溃(附源码/截图/参数表/避坑指南)
- Python/JS/Go/Java同步学习(第十六篇)四语言“字符串格式化(上)“对照表: 财务“小南“纸式格式化术处理凭证内容崩溃(附源码/截图/参数表/避坑指南)
- Python/JS/Go/Java同步学习(第十五篇)四语言“字符串去重“对照表: 财务“小南“纸式去重术处理凭证内容崩溃(附源码/截图/参数表/避坑指南)
- Python/JS/Go/Java同步学习(第十四篇)四语言“字符串字母大小写转换“对照表: 财务“小南“纸式转换术处理凭证内容崩溃(附源码/截图/参数表/避坑指南)
- Python/JS/Go/Java同步学习(第十三篇)四语言“字符串转码解码“对照表: 财务“小南“纸式转码术处理凭证乱码崩溃(附源码/截图/参数表/避坑指南)
- Python/JS/Go/Java同步学习(第十二篇)四语言“字符串填充编号“对照表: 财务“小南“纸式填充术加凭证编号崩溃(附源码/截图/参数表/避坑指南)
- Python/JS/Go/Java同步学习(第十一篇)四语言“字符串替换与填充“对照表: 雷影老板下达清除“数据歪脸“指令(附源码/截图/参数表/避坑指南)
- Python/JS/Go/Java同步学习(第十篇)四语言“字符串去空格“对照表: 雷影老板下达清除“数据污垢“指令(附源码/截图/参数表/避坑指南)
🌌平台算法容忍度测试系列上线,共三篇
✨跟大家创作方向获取流量息息相关,尽快留存以防下架
- 从数据视角分析:硬核技术文章与大众流量文章的平台算法反馈差异(附详细截图说明)
- Python批量重命名+时间修改!老板甩来100G雪山照(续)?附源码|职场生存智慧
- 编程算法“双链表“左右开弓!4语言实现《药典》字符串比对算法——附源码|截图|可白嫖| 防止抓错药 Python/JS/GO/JAVA(中医编程算法实战)HIS系统开发必备
🚀编程算法难懂?
✅编程算法中医药版上线,后续会更新:
- 惊呆!我把编程二叉树算法煮成“七宝美髯丹”,居然治好了我的算法恐惧症!(附4语言源码/整活土味海报|可白嫖|最小原型)
- CSDN唯一!用中医哲学重构数据结构:单链表秒变“药材灵气通道”(PY/JS/JAVA/GO四语言对照|最小原型|可白嫖|附截图)
- 编程算法“双链表“左右开弓!4语言实现《药典》字符串比对算法——附源码|截图|可白嫖| 防止抓错药 Python/JS/GO/JAVA(中医编程算法实战)HIS系统开发必备
Python工具箱系列上线,复制粘贴就能用✅✅:
-
设计狮别用PS切图了!Python像素炼丹术炸平UI流水线——老板的旅游照被我哈希去重后自动生成视频素材(附源码|可白嫖)
-
路径“如人体经络?Python/JS/Java/Go四语言“针灸术”——通不了算我输!附源码白嫖|职场生存指南|专治老板“文件找不到”咒术
✨碰到 其他卡顿问题| 其他数据抓取"正则"匹配问题? #### JetBrains 全家桶性能优化 ,点击以下链接👇👇直达其他爆款指南:
-
7.正则“|“表达式“?别再死记硬背了:17年非科班老炮 用正则速通秘籍,把你喂到饱!面试必备!(附记忆口诀->映射表)
-
8.程序员用国际正则征服全球文本!从ASCII到Unicode的玄学调试指南 面试高频!(附四大语言Python/JS/Java/Go支持对比+中医(HIS)映射表)
PS:按顺序看效果更佳!从 Java 到 Python,从 Web 到 C/C++,再到数据库——一套逻辑通吃 JetBrains 全家桶!
-
转发给团队里还在用默认配置的同事,救救他们的电脑和头发!"
-
“💡 不用东找西找——你要的「性能调优×数据抓取」爆款攻略,这里全都有!点击↑↑↑快速查漏补缺!”
----------------------------------------------------