Linux date命令 日期格式化与计算

2024-09-07 17:12

本文主要是介绍Linux date命令 日期格式化与计算,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

参考资料

  1. 8.4.7 dateコマンド(システムの日付と時刻を表示する)
  2. 【Linux】dateコマンドで日付フォーマットの変更及び日付計算の方法
  3. date コマンド

目录

  • 一. 基本语法
    • 1.1 -d 选项
    • 1.2 格式化
  • 二. 年月日格式化
  • 三. 日计算
    • 3.1 一天之前
    • 3.2 一天之后
  • 四. 月计算
    • 4.1 两个月前的月初
    • 4.2 两个月后的月初
    • 4.3 指定月份的最后一天
    • 4.4 指定月份下个月的最后一天
    • 4.5 指定月份的上个月的月末
    • 4.6 指定月份的上上个月的月末
  • 五. 周计算
    • 5.1 获取指定日期是周几
    • 5.2 指定日期在当年度是第几个周
    • 5.3 当前日期的下个周一
    • 5.4 下个周的今天
  • 六. 小案例
    • 6.1 输出指定期间内的所有日期
    • 6.2 输出指定期间后100天的所有日期


一. 基本语法

1.1 -d 选项

  • 用于显示或处理指定的日期和时间字符串
  • 可以将输入的日期字符串转换为不同的格式,也可以用于日期计算。

1.2 格式化

基本用法

格式说明
%Y西历4位年(1970〜)
%y西历2位年(00〜99)
%m月(01〜12)
%-m月(1〜12)
%b月份名的简略显示(Jan~Dec)
%B月份名(January 〜 December)
%d日(01〜31)
%-d日(1〜31)
%H时(24小时形式、00〜23)
%-H时(24小时形式、0〜23)
%I时(12小时形式、01〜12)
%-I时(12小时形式、1〜12)
%M分(00〜59)
%S秒(00〜59)
%a星期的简略名称(Sun, Mon, Tue, Wed, Thu, Fri, Sat)
%A星期名称(Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday)
%u星期数字(1:周一 〜 7:周日)

其他用法

格式说明
%D%m/%d/%y 的简写形式 ⇒ 09/06/24
%F%Y-%m-%d 的简写形式 ⇒ 2024-09-06
%R%H:%M 的简写形式 ⇒ 20:23
%T%H:%M:%S 的简写形式 ⇒ 20:25:54

二. 年月日格式化

# ⏹YYYY-mm-dd
date "+%F"
# 2024-09-06# ⏹mm/dd/YY
date "+%D"
09/06/24# ⏹YYYY/mm/dd HH:MM:SS
date "+%Y/%m/%d %H:%M:%S"
# 2024/09/06 20:46:09

三. 日计算

3.1 一天之前

date '+%Y-%m-%d' -d 'yesterday'
date '+%Y%m%d' -d '1 day ago'
date '+%Y%m%d' -d '-1 days'
# 20240905

3.2 一天之后

date '+%Y-%m-%d' -d '1 day'
# 2024-09-07date '+%Y%m%d' -d 'tomorrow'
# 20240907

四. 月计算

4.1 两个月前的月初

  • monthmonths 的这两种形式都可以。
date '+%Y-%m-01' -d '-2 months'
# 2024-07-01date '+%Y%m01' -d '2 month ago'
# 20240701

4.2 两个月后的月初

date '+%Y-%m-01' -d '2 months'
# 2024-11-01

4.3 指定月份的最后一天

  • 指定月份的月初 + 1个月,变为下个月的月初
  • 然后取前一天,变为指定月份的月末
my_month='06'
date '+%Y%m%d' -d "2024${my_month}01 +1 month -1 day"
# 20240630

4.4 指定月份下个月的最后一天

my_month='06'
date '+%Y%m%d' -d "2024${my_month}01 +2 month -1 day"
# 20240731

4.5 指定月份的上个月的月末

my_month='06'
date '+%Y/%m/%d' -d "2024/${my_month}/01 -1 day"
# 2024/05/31

4.6 指定月份的上上个月的月末

my_month='06'
date '+%Y%m%d' -d "2024/${my_month}/01 -1 month -1 day"
# 20240430

五. 周计算

5.1 获取指定日期是周几

  • %A:星期名称
date -d "2024-09-01" +%A
# Sunday
  • %u:星期数字
date -d "2024-09-04" +%u
# 3

5.2 指定日期在当年度是第几个周

  • %U:表示周号,从每年的第一个周日开始计算。
date -d "2024-09-01" +%U
# 35

5.3 当前日期的下个周一

date '+%Y-%m-%d' -d 'next Monday'
# 2024-09-09

5.4 下个周的今天

date '+%Y-%m-%d' -d 'next week'
date '+%Y-%m-%d' -d '1 week'
# 2024-09-13

六. 小案例

6.1 输出指定期间内的所有日期

⏹输出2016-10-01 到 2016-12-31 范围内的所有日期

my_day="2016-10-01"while [[ "${my_day}" < "2017-01-01" ]]; doecho $my_daymy_day=$(date +%F -d "$my_day 1 day")
done
# 2016-10-01
# 2016-10-02
# 2016-10-03
# 2016-10-04
# 2016-10-05
# 2016-10-06
# 2016-10-07
# 。。。省略。。。

6.2 输出指定期间后100天的所有日期

for day_num in $(seq 0 100); doecho $(date -d "2020/04/01 + $day_num days" +%Y/%m/%d)
done
# 2020/04/01
# 2020/04/02
# 2020/04/03
# 2020/04/04
# 2020/04/05
# 2020/04/06
# 。。。省略。。。

这篇关于Linux date命令 日期格式化与计算的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1145655

相关文章

Linux在线解压jar包的实现方式

《Linux在线解压jar包的实现方式》:本文主要介绍Linux在线解压jar包的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux在线解压jar包解压 jar包的步骤总结Linux在线解压jar包在 Centos 中解压 jar 包可以使用 u

linux解压缩 xxx.jar文件进行内部操作过程

《linux解压缩xxx.jar文件进行内部操作过程》:本文主要介绍linux解压缩xxx.jar文件进行内部操作,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、解压文件二、压缩文件总结一、解压文件1、把 xxx.jar 文件放在服务器上,并进入当前目录#

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

PowerShell中15个提升运维效率关键命令实战指南

《PowerShell中15个提升运维效率关键命令实战指南》作为网络安全专业人员的必备技能,PowerShell在系统管理、日志分析、威胁检测和自动化响应方面展现出强大能力,下面我们就来看看15个提升... 目录一、PowerShell在网络安全中的战略价值二、网络安全关键场景命令实战1. 系统安全基线核查

在Linux中改变echo输出颜色的实现方法

《在Linux中改变echo输出颜色的实现方法》在Linux系统的命令行环境下,为了使输出信息更加清晰、突出,便于用户快速识别和区分不同类型的信息,常常需要改变echo命令的输出颜色,所以本文给大家介... 目python录在linux中改变echo输出颜色的方法技术背景实现步骤使用ANSI转义码使用tpu

linux hostname设置全过程

《linuxhostname设置全过程》:本文主要介绍linuxhostname设置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录查询hostname设置步骤其它相关点hostid/etc/hostsEDChina编程A工具license破解注意事项总结以RHE

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

在Linux终端中统计非二进制文件行数的实现方法

《在Linux终端中统计非二进制文件行数的实现方法》在Linux系统中,有时需要统计非二进制文件(如CSV、TXT文件)的行数,而不希望手动打开文件进行查看,例如,在处理大型日志文件、数据文件时,了解... 目录在linux终端中统计非二进制文件的行数技术背景实现步骤1. 使用wc命令2. 使用grep命令

postgresql数据库基本操作及命令详解

《postgresql数据库基本操作及命令详解》本文介绍了PostgreSQL数据库的基础操作,包括连接、创建、查看数据库,表的增删改查、索引管理、备份恢复及退出命令,适用于数据库管理和开发实践,感兴... 目录1. 连接 PostgreSQL 数据库2. 创建数据库3. 查看当前数据库4. 查看所有数据库