我有一个CGI脚本,它使用unix date
命令将给定的字符串转换为日期/时间。我正在寻找一种可以轻松嵌入到URL中的格式,而无需使用%20
进行转义。正在构建URL的日期/时间的客户端没有转换为unix时间(自纪元以来的秒数)并且没有办法转换为zulu的偏移量(ISO8601将无效)。但是,可以通过许多其他方式重新格式化用于构建URL的日期/时间。
是否还有其他选项以非间隔格式构建日期时间?
答案 0 :(得分:27)
$ date "+%F-%T"
2010-10-25-16:23:14
答案 1 :(得分:1)
我找到了一个简单的解决方法。只需在空格中使用下划线,然后在转换为日期之前在CGI脚本中执行tr
。它看起来像这样:
stamp="$(echo $stamp|tr _ ' '|xargs -0 date -d)"
然后使用看起来像这样的日期:
26_Oct_2010_11:57:56_CDT
转换为:
date -d "26 Oct 2010 11:57:56 CDT"
答案 2 :(得分:1)
ISO 8601 格式非常适合这种情况,并且内置于 date
。
以下是支持不同精度级别的一些示例:
$ date --iso-8601
2021-06-26
$ date --iso-8601=minutes
2021-06-26T16:01-0600
$ date --iso-8601=seconds
2021-06-26T16:01:23-0600
$ date --iso-8601=ns
2021-06-26T16:03:19,903115256-0600
有关更多选项,请参阅 man date
。