You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shell中如何用%N或%3N正确格式化毫秒?

解决date命令输出毫秒时显示“3N”的问题

问题原因

你使用的date版本(大概率是BSD风格,比如macOS自带的)不支持%N纳秒格式符,导致命令中的%3N被错误解析:%3被识别为某个输出值,N则直接作为字符串输出,最终出现23.3N这类结果。

解决方案

根据你的系统类型选择对应方法:

1. GNU date环境(Linux系统或已安装GNU date)

GNU date原生支持%N纳秒格式符,%3N表示取纳秒的前三位作为毫秒值,直接使用以下命令即可:

date +"%Y-%m-%dT%H:%M:%S.%3N"

如果是在macOS上,可先通过Homebrew安装GNU date:

brew install coreutils

之后使用gdate替代date执行命令:

gdate +"%Y-%m-%dT%T.%3N"

2. BSD date环境(如未安装GNU date的macOS)

BSD date不支持%N,但可以通过获取微秒(%6)再截断为三位毫秒的方式实现:

date +"%Y-%m-%dT%T.%6" | cut -c1-23

该命令先输出包含6位微秒的时间,再通过cut命令截取前23个字符(正好保留到毫秒位)。

内容的提问来源于stack exchange,提问作者rosierose12

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 12:00:03