【问题标题】:How to get the current date and time in specific format in Shell如何在Shell中以特定格式获取当前日期和时间
【发布时间】:2019-02-27 09:27:44
【问题描述】:

我只想在 shell 中使用以下格式获取系统当前时间

  Expected Format:
  2019-02-14T08:08:12.300Z

我尝试了下面的一段脚本,但它返回了一些不同的东西。

  CURRENTDATE=`date +"%Y-%m-%d %T"`
  echo $CURRENTDATE

输出

   2019-02-27 01:22:57

我刚刚在我的 linux 机器中运行 date 命令并得到以下响应:

   -bash-3.2$ date
   Wed Feb 27 01:43:26 PST 2019

我们将上述输出作为输入 JSON 文件传递​​。但是我们的 JSON 不接受这个输出。所以我只想通过上面指定的格式(Expected Format)传递日期和时间格式。

【问题讨论】:

  • 让我检查一下然后回到你身边
  • 返回2019-02-27T01:36:46-0800 无法接受具体格式
  • 是的......它看起来像 300Z 时区偏移量。
  • 300Z 表示比 UTC 提前 3 小时,这将是一些亚洲国家

标签: shell unix


【解决方案1】:

你可以使用:

dt=$(date '+%Y-%m-%dT%T.%zZ')
echo "$dt"

2019-02-27T04:35:56.-0500Z

还要注意--iso-8601=seconds的用法:

date --iso-8601=seconds

2019-02-27T04:37:29-05:00

【讨论】:

  • 我认为除了最后 4 位数字是负数 -0500Z 之外,一切看起来都一样
  • 由于我当前的时区,我的输出显示-0500Z。你会得到不同的时区。顺便说一句,你的区域是什么?
  • -bash-3.2$ 日期 2019 年 2 月 27 日星期三 01:43:26 PST
  • 然后使用:TZ=America/Los_Angeles date '+%Y-%m-%dT%T.%zZ',但 PST 也将是负偏移,因为 UTC 比 PST 提前 8 小时
猜你喜欢
  • 2019-10-01
  • 1970-01-01
  • 2014-08-12
  • 2015-06-07
  • 2019-12-22
  • 1970-01-01
  • 2014-09-14
  • 2017-11-18
  • 2015-07-20
相关资源
最近更新 更多