显示没有标点符号的当前日期和时间

时间:2013-12-12 18:39:58

标签: bash shell date

例如,我想以下列格式显示当前日期和时间:

yyyymmddhhmmss 

我该怎么做?大多数日期格式似乎都附带-/:等。

5 个答案:

答案 0 :(得分:151)

你走了:

date +%Y%m%d%H%M%S

正如man date在顶部附近说的那样,您可以像这样使用date命令:

date [OPTION]... [+FORMAT]

也就是说,你可以给它一个格式参数,从+开始。 您可以猜测我使用的格式符号的含义:

  • %Y是一年
  • %m是个月
  • %d是为了一天
  • ......等等

您可以在man date中找到此格式符号和其他格式符号。

答案 1 :(得分:31)

shell脚本中的一个简单示例

#!/bin/bash

current_date_time="`date +%Y%m%d%H%M%S`";
echo $current_date_time;

没有标点格式: - +%Y%m%d%H%M%S
标点符号: - +%Y-%m-%d%H:%M:%S

答案 2 :(得分:5)

如果您正在使用Bash,您还可以使用以下命令之一:

printf '%(%Y%m%d%H%M%S)T'       # prints the current time
printf '%(%Y%m%d%H%M%S)T' -1    # same as above
printf '%(%Y%m%d%H%M%S)T' -2    # prints the time the shell was invoked

您可以使用选项-v varname将结果存储在$varname中,而不是将其打印到stdout:

printf -v varname '%(%Y%m%d%H%M%S)T'

虽然date命令总是在子shell中执行(即在单独的进程中),但printf是一个内置命令,因此会更快。

答案 3 :(得分:4)

没有标点符号(正如@Burusothman所说):

current_date_time="`date +%Y%m%d%H%M%S`";
echo $current_date_time;

O / P:

20170115072120

标点符号

current_date_time="`date "+%Y-%m-%d %H:%M:%S"`";
echo $current_date_time;

O / P:

2017-01-15 07:25:33

答案 4 :(得分:0)

有趣/有趣的方式来使用parameter expansion(需要<a href=“your-link.html><img src=“your-photo-path.png”></a> 或更高版本):

  

bash 4.4

     

扩展是一个字符串,是将参数值扩展为提示字符串的结果。

${parameter@operator} - P operator