shell 输出标准时间格式

输出标准时间格式,注意 date 和 “+” 号之间要有空格。

  1. echo currTime=$(date +"%Y-%m-%d %T")
  1. [root@0612C8BBD13693AF ~]#
  2. [root@0612C8BBD13693AF ~]# echo currTime=$(date +"%Y-%m-%d %T")
  3. currTime=2022-07-08 14:35:13
  4. [root@0612C8BBD13693AF ~]#

取时间

获取当前的时间戳

  1. date '+%s'
  1. 1657262355

取得昨天

  1. date -d "yesterday" +"%Y-%m-%d"

30分钟前

  1. date -d "-30 minute" +"%Y-%m-%d %H:%M:%S"

30分钟后

  1. date -d "+30 minute" +"%Y-%m-%d %H:%M:%S"

转换

将时间戳转成日期

  1. date -d '1970-01-01 UTC 946684800 seconds' +"%Y-%m-%d %T %z"

将日期转成时间戳

  1. date -d "2015-08-04 00:00:00" +%s

判断时间

判断时间是不是 0点-8点期间

  1. __func1() {
  2. _is_time=$(date +"%T" | cut -c1-2 | grep '0[0-8]' -c)
  3. if ((_is_time == 1)); then
  4. echo "现在是 0点-8点期间"
  5. else
  6. echo "现在非 0点-8点期间"
  7. fi
  8. }
  9. __func1

判断时间是不是 9点-0点期间

  1. __func1() {
  2. _is_time=$(date +"%T" | cut -c1-2 | grep -E '(09)|(1)|(1[0-9])|(2[0-3])' -c)
  3. if ((_is_time == 1)); then
  4. echo "现在是 9点-23:59分期间"
  5. else
  6. echo "现在非 9点-23:59分期间"
  7. fi
  8. }
  9. __func1