📜  linux shell 脚本中的日期格式 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:43:55.593000             🧑  作者: Mango

Linux Shell 脚本中的日期格式

概述

在 Linux Shell 脚本中,我们经常需要处理日期格式,比如获取当前时间、将日期转换成特定格式、计算日期差等。因此熟练掌握 Linux Shell 脚本中日期格式操作是非常必要的。

日期和时间格式

在 Linux Shell 中,我们可以通过 date 命令来获取当前的日期时间,例如:

$ date

该命令输出的日期时间格式默认为当前系统的日期时间格式。通常情况下,Linux 系统的日期时间格式都是采用国际标准 ISO 8601 格式,即 yyyy-mm-dd HH:MM:SS。

下面是一些常见的日期时间格式:

  • %Y:年份,4 位数字
  • %m:月份,两位数字
  • %d:日期,两位数字
  • %H:小时,24 小时制,两位数字
  • %M:分钟,两位数字
  • %S:秒钟,两位数字
格式化日期

使用 date 命令,我们可以将日期格式化成我们需要的格式。例如,将日期时间转换成 yyyy-mm-dd 的格式:

$ date +%Y-%m-%d

将日期时间转换成 yyyy-mm-dd HH:MM:SS 的格式:

$ date +%Y-%m-%d\ %H:%M:%S
获取日期时间

获取当前日期和时间可以使用 date 命令,例如:

$ date +%Y-%m-%d\ %H:%M:%S

获取当前年份:

$ date +%Y

获取当前月份:

$ date +%m

获取当前日期:

$ date +%d

获取当前小时:

$ date +%H

获取当前分钟:

$ date +%M

获取当前秒钟:

$ date +%S
计算日期差

在 Shell 脚本中,我们还可以计算两个日期之间的差值,可以通过将两个日期转换成时间戳,然后计算时间戳之间的差值。例如,计算两个日期相差的天数:

#!/bin/bash

date1="2021-05-01"
date2="2021-06-01"

# 将日期转换成时间戳
timestamp1=$(date -d "$date1" +%s)
timestamp2=$(date -d "$date2" +%s)

# 计算时间戳之间的差值
diff=$(($timestamp2-$timestamp1))

# 计算相差的天数
day=$((diff/60/60/24))

echo "相差的天数为:$day"

以上脚本将会输出相差的天数为 31。

结论

在 Linux Shell 中,日期操作是非常常见的操作。熟练掌握 Linux Shell 脚本中日期格式的操作是非常必要的。通常情况下,我们可以使用 date 命令来处理日期格式,也可以将日期转换成时间戳来计算日期差。