我在bash shell脚本中尝试使用$(date)
,但是我想要的日期格式是YYYY-MM-DD
。
我该如何获取?
我在bash shell脚本中尝试使用$(date)
,但是我想要的日期格式是YYYY-MM-DD
。
我该如何获取?
$ man strftime
提醒自己有关时间格式选项的所有可能性。
我使用$(date +"%Y-%m-%d")
或$(date +"%Y-%m-%d %T")
来获取日期和时间。
date | cut -d " " -f2-4 | tr " " "-"
2021年2月21日
date
命令会输出当前语言环境下的可读日期,因此解析它与解析 apt install
的输出一样无用。 - phuclv#!/bin/bash -e
x='2018-01-18 10:00:00'
a=$(date -d "$x")
b=$(date -d "$a 10 min" "+%Y-%m-%d %H:%M:%S")
c=$(date -d "$b 10 min" "+%Y-%m-%d %H:%M:%S")
#date -d "$a 30 min" "+%Y-%m-%d %H:%M:%S"
echo Entered Date is $x
echo Second Date is $b
echo Third Date is $c
这里x是用作示例日期,然后示例显示了数据格式以及获取比当前日期晚10分钟的日期。
echo "`date "+%F"`"
将打印 YYYY-MM-DD
%F
已经有很多答案了。$()
会更容易阅读;当当前 shell 中只需要一个 date "+%F"
时,就没有必要生成子 shell、捕获其输出并使用 echo
打印了。date +%Y-%m-%dT%H:%M:%S
会打印出类似于2023-07-18T11:09:16的内容,通常被称为RFC-3339。
你可以将日期设置为环境变量,稍后可以使用它。
setenv DATE `date "+%Y-%m-%d"`
echo "----------- ${DATE} -------------"
或者
DATE =`date "+%Y-%m-%d"`
echo "----------- ${DATE} -------------"
已经过时和被弃用很久了。永远不要使用它们,而是使用
$()`,因为它是可嵌套和易读的。 - phuclv尝试使用此代码生成一个简单易读的时间戳:
dt=$(date)
echo $dt
输出:
Tue May 3 08:48:47 IST 2022
date -I
就是你需要的全部内容。我花了好几年才偶然发现这个命令。 - Sridhar Sarnobatdate -I
只适用于 Linux 上的 GNU 工具,并不适用于 macOS/ BSD。安装 brew 后,运行brew install coreutils
即可使用gdate -I
命令。 - ssc