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

ret*_*n 0 111 bash shell date

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

yyyymmddhhmmss 
Run Code Online (Sandbox Code Playgroud)

我怎么做?这似乎是大多数日期格式自带-,/,:,等.

Sto*_*ica 163

干得好:

date +%Y%m%d%H%M%S
Run Code Online (Sandbox Code Playgroud)

man date顶部附近所述,您可以使用如下date命令:

date [OPTION]... [+FORMAT]
Run Code Online (Sandbox Code Playgroud)

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

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

你可以在其中找到这个和其他格式符号man date.


Bur*_*man 35

shell脚本中的一个简单示例

#!/bin/bash

current_date_time="`date +%Y%m%d%H%M%S`";
echo $current_date_time;
Run Code Online (Sandbox Code Playgroud)

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

  • `\`date"+%Y-%m-%d%H:%M:%S"\``做了诀窍. (7认同)
  • ``\`date +%Y-%m-%d%H:%M:%S \`"`给我一个'日期:非法时间格式' (2认同)

Ani*_*non 6

没有标点符号(正如@Burusothman 提到的):

current_date_time="`date +%Y%m%d%H%M%S`";
echo $current_date_time;
Run Code Online (Sandbox Code Playgroud)

开/关:

20170115072120
Run Code Online (Sandbox Code Playgroud)

标点符号

current_date_time="`date "+%Y-%m-%d %H:%M:%S"`";
echo $current_date_time;
Run Code Online (Sandbox Code Playgroud)

开/关:

2017-01-15 07:25:33
Run Code Online (Sandbox Code Playgroud)


小智 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
Run Code Online (Sandbox Code Playgroud)

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

printf -v varname '%(%Y%m%d%H%M%S)T'
Run Code Online (Sandbox Code Playgroud)

虽然date命令将始终在子shell中执行(即在单独的进程中),但printf是内置命令,因此会更快.