Bash中的日期和时间组合表示

时间:2013-10-24 08:38:29

标签: bash datetime iso8601

如何使用Bash

以下列格式获取当前日期
  

YYYY-MM-DDTHH:MM:SS

3 个答案:

答案 0 :(得分:36)

使用以下选项:

$ 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

答案 1 :(得分:0)

使用日期-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

答案 2 :(得分:0)

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

当您从命令行开始时,拥有如此庞大的用户社区可以回答问题并为您提供帮助,真是太好了。如果您使用macOS,由于Apple的特定选择和实现,一些很好的建议将无法完全正常工作。

兼容

有很多方法可以做事情。无论哪种方式,我都没有任何偏好,只是我希望事情能够简单,正确地工作。与在此发布文章的大多数用户“兼容”将使您的生活更简单。 Coreutils是一款free软件,它将使macOS与标准linux工具更加“兼容”。

  

书呆子侧边栏

     

如果您对超级细节和哲学感兴趣,或者希望自己开发实用程序,我喜欢this page上的MaiZure's Projects,探讨了工具的设计。这是github的官方仓库,它包含了1983年开始的数十年发展中的各种工具和改进。如您所料,它是各种经典sysop语言的浓汤。 >

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

让它正常工作!

对于大多数只希望它能正常工作的人,请安装coreutils并对其进行符号链接以替换原始文档。包装中包含说明。

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

从GNU网站:

  

Coreutils - GNU core utilities

     

Coreutils简介

     

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

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

$ brew install coreutils

如果这引起您的兴趣,那么还有一个不相关的活动项目,称为moreutils,可以考虑并生产出 more 个有用的 utils 。我当然认为这些是可选的和视情况而定,但很方便:

$ brew install moreutils

如果确定要解决此问题的具体方法,请将以下内容添加到〜/ .bash_profile(或具有的任何shell)中:

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

做事有很多方法。对它们的大多数评估都是有根据的。许多简单而有效的工具都有着悠久的历史,这使我们发展到今天。我喜欢它的多样性。它真正体现了“您的里程可能会有所不同”的想法。

  • ymmv