例如,我想以下列格式显示当前日期和时间:
yyyymmddhhmmss
我该怎么做?大多数日期格式似乎都附带-
,/
,:
等。
答案 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