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

使用GNU coreutils的date解析YYYYMMDDHH格式日期报错求正确方法

解决date命令解析2018022210失败的问题

嘿,我来帮你搞定这个小问题~你遇到的date: invalid date 2018022210错误,是因为date命令默认没法直接识别YYYYMMDDHH这种紧凑的纯数字日期格式,得明确告诉它输入的日期结构才行。

下面给你几个靠谱的解决方法:

方法一:手动转成标准可识别格式

最简单的方式就是把紧凑格式拆成YYYY-MM-DD HH:MM这种date默认能识别的格式,直接执行:

date -d "2018-02-22 10:00" +'%Y%m%d%H'

这个命令会输出你想要的2018022210。

方法二:用sed自动拆分格式

如果你的日期字符串是动态生成的,没法手动拆分,可以用sed来自动把纯数字串转换成标准格式:

date -d "$(echo '2018022210' | sed -E 's/(....)(..)(..)(..)/\1-\2-\3 \4:00/')" +'%Y%m%d%H'

sed这里用正则把字符串按年(4位)-月(2位)-日(2位) 小时(2位):00的规则拆分,再交给date解析。

方法三:直接指定输入格式(GNU date支持)

如果你的系统用的是GNU版本的date(大部分Linux发行版都是),可以用-D参数直接指定输入格式,一步到位:

date -D "%Y%m%d%H" -d "2018022210" +'%Y%m%d%H'

-D "%Y%m%d%H"就是告诉date:“我给你的输入是4位年、2位月、2位日、2位小时的格式哦”,这样它就能正确解析了。

执行上面任意一个命令,都能得到你想要的正确输出~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:48:30