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

Linux date命令如何在自定义格式串中输出默认普通日期记法

实现方法

自定义locale开发调试date命令日期表示规则时,无法通过单个格式符直接引用date无参数的默认输出——默认输出不是直接对应%c/%Ec这类内置格式,从测试结果就能看到明确差异:

  • %c/%Ec输出:Fri Jun 24 13:54:39 2022(无时区标识)
  • 无参数date默认输出:Fri Jun 24 13:54:39 HKT 2022(带本地时区缩写)

date无参数输出的内部逻辑是:取当前locale定义的标准日期时间组合格式(也就是%c对应的格式定义),在时间字段和年份字段之间插入%Z对应的时区缩写后输出。

具体写法

如果是针对固定locale调试,可以直接手动拼接对应字段,以测试用的en_HK.UTF-8场景为例,自定义格式串里加入默认输出的写法如下:

LANG=en_HK.UTF-8 date '+ (default) %a %b %e %H:%M:%S %Z %Y %n (%%Ec) %Ec %n (%%r ) %r %n (%%c ) %c %n (ref) %F %T wk %U at %u'

执行后(default)段的输出就和无参数执行date的结果完全一致。

如果需要适配任意自定义locale,不要硬编码字段顺序,可以先执行locale -k d_t_fmt获取当前locale下%c对应的原始格式字符串,再在时间字段和年份字段的对应位置插入%Z,即可得到和无参数date完全一致的输出。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 02:48:30