23

如何使用 Bash 获取以下格式的当前日期

YYYY-MM-DDThh:mm:ss

4

3 回答 3

40

使用这些选项:

$ date "+%Y-%m-%d %H:%M:%S"
2013-10-24 10:40:12

甚至(感谢Birei!)

$ date "+%F %T"
2013-10-24 10:40:12

所有格式控件都可以从man date.

我不知道你的T意思,但例如你有:

$ date "+%F %T %Z"
2013-10-24 10:40:12 CEST
于 2013-10-24T08:40:21.443 回答
0

使用 date -I (iso-8601) 格式,正如@karfau 已经指出的那样

$ man date
       -I[FMT], --iso-8601[=FMT]
              output date/time in ISO 8601 format.  FMT='date' for date only (the default), 
              'hours', 'minutes', 'seconds', or 'ns' for date and time to the indicated 
              precision. 
              Example: 2006-08-14T02:34:56-06:00

例子:

$ date -I
2018-10-23

$ date -Iminutes
2018-10-23T14:56-07:00

$ date -Iseconds
2018-10-23T14:56:44-07:00
于 2018-10-23T22:01:18.623 回答
0

让您的 macOS Bash 实用程序更兼容

当您开始使用命令行时,拥有一个庞大的用户社区来回答问题并在您的道路上为您提供帮助真是太好了。如果您使用 macOS,由于 Apple 的特定选择和实现,一些非常好的建议将不会完全正确。

兼容

有很多方法可以做事。无论哪种方式,我都没有任何特定的偏好,只是我只想让事情简单而正确地工作。与在这里发帖的大多数用户“兼容”将使您的生活更简单。Coreutils是一款免费软件,它将使 macOS 与标准 linux 工具更加“兼容”。

书呆子边栏

如果您对超级书呆子的详细信息和哲学感兴趣,或者希望制作自己的实用程序,我喜欢MaiZure 的项目中探索工具设计的这个页面。这是官方的github 存储库,它包含从 1983 年开始的数十年开发中的各种工具和改进。正如您所料,它是不同经典sysop语言的集合。

C 57.5% Shell 24.1% Perl 13.1% Makefile 2.2% C++ 2.1%

让它工作!

对于大多数只想让它正常工作的人,安装coreutils并符号链接它们以替换原件。说明包含在包装中。

Coreutils是一组标准(非内置)实用程序,与您在互联网上看到的许多“linux-ish”建议更加“兼容”。无论您使用哪种 shell(BASH、ZSH 等),都可以通过安装这组 GNU 核心实用程序让您的生活变得更轻松。

来自 GNU 网站:

Coreutils - GNU 核心实用程序

Coreutils 简介

GNU Core Utilities 是 GNU 操作系统的基本文件、shell 和文本操作实用程序。 这些是预期存在于每个操作系统上的核心实用程序。

在 macOS 上安装它们的最简单方法是使用Homebrew

$ brew install coreutils

如果这让您感兴趣,还有一个不相关的活动项目被称为moreutils考虑并产生更有用的utils。我绝对认为这些更具选择性和情境性,但很方便:

$ brew install moreutils

如果您确定要找到此问题的特定解决方案,请将以下内容添加到您的 ~/.bash_profile(或您拥有的任何 shell)中:

mydate() { [[ "$1" = "-I" ]] && command date "+%Y-%m-%dT%H:%M:%S%z" || command date "$@"; }

有很多方法可以做事。对他们的大多数评估必然是固执己见的。许多不同的工具有着悠久的历史,简单而有效,它们将我们带到了今天的位置。我喜欢它的多样性。它真正体现了“您的里程可能会有所不同”的想法。

  • ymmv
于 2019-06-13T23:36:55.637 回答