【发布时间】:2014-02-03 00:31:15
【问题描述】:
我做错了吗?当我使用带有秒数的ISO 8601 选项时,我不敢相信date -d 不接受自己的输出。我必须删除“T”或时区才能使其正常工作。
我目前的解决方案是使用date +"%Y-%m-%d %T %z" 而不是date -Iseconds,但我只是觉得这很奇怪。
【问题讨论】:
-
一个
sed命令可以删除T...为什么来回翻译? -
初始
date -d格式适用于我的 bashGNU bash, version 4.1.10(4)-release (i686-pc-cygwin)版本。bash --version对你的输出是什么? -
bash的版本应该是无关的;更好的问题是你们每个人都使用什么版本的date? -
有关 ISO 8601 和
date的旧版本的更多信息:unix.stackexchange.com/questions/107750/… -
@abiessu 我正在将 ISO 8601 格式的开始和结束日期时间写入日志文件,然后还需要将它们转换为纪元秒以计算持续时间。但是你提出了一个很好的观点。我还可以将变量保留为默认日期格式,并且仅在写入日志时转换为 ISO 8601。这样只有 1-way 转换而不是 2-way。