简介

  • date命令

linux date命令 详解

date 命令用于显示或设置系统的日期和时间。在 Linux 中,date 命令非常常用,可以用于获取当前日期时间、设置系统时间,以及格式化输出时间等。以下是一些常用的 date 命令选项和用法:

1. 显示当前日期时间:

1
date

默认情况下,date 命令会显示当前的日期和时间。

2. 显示指定格式的日期时间:

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

使用 + 后面跟着格式字符串,可以按指定格式显示日期和时间。上面的例子显示的格式是年-月-日 时:分:秒。

3. 显示日期时间及星期:

1
date +"%A, %B %d, %Y %H:%M:%S"

这个例子显示的格式包括星期、月份、日期、年份、时、分和秒。

4. 显示 UTC 时间:

1
date -u

使用 -u 选项可以显示当前的 UTC 时间。

5. 设置系统时间:

1
sudo date MMDDhhmm[[CC]YY][.ss]

通过 sudo date 命令可以设置系统的日期和时间。格式中 MM 代表月份,DD 代表日期,hh 代表小时,mm 代表分钟,CC 代表世纪,YY 代表年份的后两位,ss 代表秒。

6. 显示时间戳:

1
date +%s

使用 +%s 选项可以显示当前时间的时间戳(从 1970-01-01 00:00:00 UTC 到现在的秒数)。

7. 将时间戳转换为日期时间:

1
date -d "@timestamp" +"%Y-%m-%d %H:%M:%S"

将具体时间戳替换 timestamp,可以将时间戳转换为可读的日期时间格式。

8. 计算日期差值:

1
2
3
date1=$(date -d "2022-01-01" +%s)
date2=$(date -d "2022-02-01" +%s)
echo $(( (date2 - date1) / 86400 )) days

这个例子计算了从 2022 年 1 月 1 日到 2022 年 2 月 1 日的天数差值。

9. 将日期时间设为其他时区:

1
TZ="America/New_York" date

使用 TZ 环境变量可以将 date 命令显示的时间设为其他时区的时间。

10. 显示日历:

1
cal

cal 命令可以显示当前月的日历。

11. 显示某年某月的日历:

1
cal MM YYYY

将 MM 和 YYYY 替换为具体的月份和年份。

这些是一些常用的 date 命令选项和用法,可以帮助你在 Linux 系统中处理日期和时间相关的任务。根据实际需求,你可以选择不同的格式和选项来满足特定的日期时间操作。

linux date命令 常用技巧

以下是一些在使用 date 命令时的常用技巧和选项,以便更灵活地处理日期和时间:

1. 显示当前日期时间:

1
date

默认情况下,date 命令会显示当前的日期和时间。

2. 显示指定格式的日期时间:

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

使用 + 后面跟着格式字符串,可以按指定格式显示日期和时间。

3. 将日期时间设为其他时区:

1
TZ="America/New_York" date

使用 TZ 环境变量可以将 date 命令显示的时间设为其他时区的时间。

4. 显示 UTC 时间:

1
date -u

使用 -u 选项可以显示当前的 UTC 时间。

5. 显示时间戳:

1
date +%s

使用 +%s 选项可以显示当前时间的时间戳(从 1970-01-01 00:00:00 UTC 到现在的秒数)。

6. 将时间戳转换为日期时间:

1
date -d "@timestamp" +"%Y-%m-%d %H:%M:%S"

将具体时间戳替换 timestamp,可以将时间戳转换为可读的日期时间格式。

7. 计算日期差值:

1
2
3
date1=$(date -d "2022-01-01" +%s)
date2=$(date -d "2022-02-01" +%s)
echo $(( (date2 - date1) / 86400 )) days

这个例子计算了从 2022 年 1 月 1 日到 2022 年 2 月 1 日的天数差值。

8. 生成递增日期序列:

1
2
3
4
5
6
start_date="2022-01-01"
end_date="2022-01-10"
while [ "$start_date" != "$end_date" ]; do
  echo $start_date
  start_date=$(date -I -d "$start_date + 1 day")
done

这个例子生成了从 2022 年 1 月 1 日到 2022 年 1 月 10 日的日期序列。

9. 显示一周的开始和结束日期:

1
2
3
4
5
today=$(date +%u)
start_date=$(date -d "last sunday -$(($today - 1)) days" +"%Y-%m-%d")
end_date=$(date -d "next saturday -$(($today - 7)) days" +"%Y-%m-%d")
echo "Start Date: $start_date"
echo "End Date: $end_date"

这个例子显示当前日期所在周的开始和结束日期。

10. 格式化输出当前月的日历:

1
cal $(date +"%m %Y")

这个例子使用 cal 命令结合 date 命令,以格式化形式显示当前月的日历。

这些技巧可以帮助你更灵活地使用 date 命令,根据实际需求处理日期和时间相关的任务。

date

date是Linux系统中用于显示和设置系统日期和时间的命令。它还可以格式化日期和时间以满足特定的需求。

以下是date命令的常用选项和用法:

1
date [options] [+format]

常用选项:

  • -d, --date=STRING:使用指定的日期和时间字符串进行操作,而不是当前日期和时间。
  • -u, --utc, --universal:使用协调世界时(UTC)进行操作,而不是本地时间。
  • --rfc-3339=TIMESPEC:使用RFC 3339格式显示日期和时间。
  • --iso-8601[=TIMESPEC]:使用ISO 8601格式显示日期和时间。
  • -R, --rfc-2822:使用RFC 2822格式显示日期和时间。
  • --help:显示帮助信息。

格式化选项(常用的格式化选项):

  • %Y:四位数的年份(例如:2023)。
  • %y:两位数的年份(例如:23)。
  • %m:两位数的月份(例如:06)。
  • %d:两位数的日期(例如:09)。
  • %H:两位数的小时(24小时制)(例如:15)。
  • %M:两位数的分钟(例如:30)。
  • %S:两位数的秒钟(例如:45)。
  • %A:完整的星期几名称(例如:Sunday)。
  • %a:缩写的星期几名称(例如:Sun)。
  • %B:完整的月份名称(例如:June)。
  • %b:缩写的月份名称(例如:Jun)。
  • %Z:时区名称(例如:PST)。
  • %z:时区偏移量(例如:-0800)。

示例用法:

  1. 显示当前日期和时间:
1
date
  1. 显示当前日期(年、月、日):
1
date +%Y-%m-%d
  1. 显示当前时间(小时、分钟、秒):
1
date +%H:%M:%S
  1. 根据指定格式显示日期和时间:
1
date +"%Y-%m-%d %H:%M:%S"
  1. 显示当前时间的UNIX时间戳:
1
date +%s

date命令还支持其他选项和格式化标记,可以根据具体的需求进行调整。您可以通过man date命令查看date命令的完整帮助文档和更多用法示例。