如何从busybox中的“日期”获取ISO8601秒格式?

Posted

技术标签:

【中文标题】如何从busybox中的“日期”获取ISO8601秒格式?【英文标题】:How to get ISO8601 seconds format from "date" in busybox? 【发布时间】:2017-12-12 23:23:32 【问题描述】:

没有足够的例子,我一直在兜圈子,以得到由“日期”打印出来的“秒”版本的 iso8601。请查看busybox 1.22.1 提供的帮助。我似乎无法理解所需的语法。根据我的经验,例子胜于雄辩,我还没有在网上找到任何有用的东西。

这是我尝试过的:

➤ date -I=seconds
➤ date -I SPEC='seconds'
➤ date -I seconds
➤ date -I='seconds'
➤ date -I 'seconds'
➤ date -I['seconds']
➤ date -I TIMESPEC='seconds'
➤ date -I TIMESPEC=seconds

注意,我尝试使用 Ubuntu 版本的日期,并且能够弄清楚如何获取 iso8601=seconds 格式的日期,但在busybox中却没有......

以下是 Busybox 1.22.1 的日期帮助显示:

BusyBox v1.22.1 (2014-09-26 07:33:17 CEST) multi-call binary.
Usage: date [OPTIONS] [+FMT] [TIME]
Display time (using +FMT), or set time
    [-s,--set] TIME Set time to TIME
    -u,--utc        Work in UTC (don't convert to local time)
    -R,--rfc-2822   Output RFC-2822 compliant date string
    -I[SPEC]        Output ISO-8601 compliant date string
                    SPEC='date' (default) for date only,
                    'hours', 'minutes', or 'seconds' for date and
                    time to the indicated precision
    -r,--reference FILE     Display last modification time of FILE
    -d,--date TIME  Display TIME, not 'now'
    -D FMT          Use FMT for -d TIME conversion

【问题讨论】:

【参考方案1】:

文档(即帮助)令人困惑,不会为简单的功能带来愉快的体验。相反,需要重新编写文档,以便示例命令行输入也是帮助的一部分(至少要降低语法)。无论如何,我回答了我自己的问题。

我碰巧错过的一次尝试中的主要和非常微妙的区别:

➤ date -I 'seconds'
date: invalid date 'seconds'

被头发吓跑了。它需要删除空间:

➤ date -I'seconds'
2017-07-09T17:29:54-0400

现在busybox约会很开心。

【讨论】:

请记住,作为命令一部分的 Busybox 文档故意很小。他们正试图将包装入一个非常小的尺寸,他们这样做的方法之一是包含非常少的文档。 不,我很理解,但是该工具的实现方式,一些额外的示例将有助于减少像我这样不熟悉busybox 工具集的用户的困惑。其中一些可以使该工具更加用户友好并且不会使软件包膨胀。

以上是关于如何从busybox中的“日期”获取ISO8601秒格式?的主要内容,如果未能解决你的问题,请参考以下文章

使用 ISO-8601 格式的 date-fns 获取当前日期

ISO-8601 周编号与 PHP 中的“Outlook”编号

如何将 Excel 中的日期转换为 ISO 8601 格式

如何在 PHP 中将日期时间转换为 ISO 8601

如何在 MySQL 数据库中存储 UTC ISO8601 日期?

从Python中的ISO周数获取日期[重复]