$dateToString(日期格式化)

最后更新:2026-10-09

$dateToString(日期格式化)

$dateToString 按指定格式字符串将日期转换为字符串,是聚合管道格式化输出日期的最常用方式。格式串使用占位符(如 %Y 年、%m 月、%d 日、%H 时),与 strftime 风格类似。date 为 null 或缺失时,可返回 null 或指定 onNull 默认值。

分类日期
MongoDB 版本3.0+
示例语言mongosh (Shell)

📝 语法

{ $dateToString: { format: <格式串>, date: <日期表达式>, timezone: <时区>, onNull: <默认值> } }

▶ 示例

请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):

// $dateToString:格式化订单日期
db.orders.aggregate([
  { $project: {
      dateStr: { $dateToString: { format: "%Y-%m-%d", date: "$createdAt" } }
  } }
])

运行结果:

{ "_id": 1, "dateStr": "2026-09-25" }
{ "_id": 2, "dateStr": "2026-09-24" }

📌 注意事项

更多实战案例即将上线,敬请期待。

📚 相关教程

❓ 常见问题

Q时区怎么写?
A用 IANA 时区名(如 "Asia/Shanghai")或 UTC 偏移(如 "+08:00")。缺省为 UTC。
Q$dateToString 支持哪些格式说明符?
A常用有 %Y(年)、%m(月)、%d(日)、%H(时)、%M(分)、%S(秒)、%L(毫秒)、%z(时区偏移)、%j(年内第几天)。完整清单见官方文档。
Qdate 字段不是日期类型会怎样?
A$dateToString 要求输入是 Date 类型,否则返回 null 或报错(取决于是否开启严格模式)。可先用 $toDate 转换。
Q可以输出 ISO 8601 格式吗?
A可以。用 %Y-%m-%dT%H:%M:%S.%LZ 组合即可输出类似 2026-10-01T08:30:00.000Z 的字符串;或直接用 $isoDate 表达式。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏