Linux的shell的date命令

用于生成备份文件的例子

fp="/etc/samba/smb.conf" ;    cp -a ${fp} ${fp}.$(date +%0y%0m%0d%0H%0M%0S).bak

带纳秒ns

fp=/etc/samba/smb.conf ;    cp -a $fp $fp.$(date +%0y%0m%0d%0H%0M%0Sns%0N).bak
fp=/etc/samba/smb.conf ;    cp -a $fp $fp.$(date +%0y%0m%0d%0H%0M%0S--%0N).bkup

linux的shell的date命令的加号"+"的作用

1是输出 , 2是填充方式,以0填充补位

  1. 第一个 + 表示格式化输出字符串, 后接表达式

  2. 加号后面的加号,在格式化表达式中的加号+, 表示以0填充补位, 比如1月会填充为01月, 也可以是0 , 也可以没有,因为默认效果如同0
    例如
    date "+%y%m%d%H%M%S"
    date +"%y%m%d%H%M%S"
    date +%+y%m%d%H%M%S
    date +%0y%m%d%H%M%S
    date +%+y%+m%+d%H%M%S
    date +%0y%0m%0d%H%M%S
    date +%+y%+m%+d%+H%M%S
    date +%0y%0m%0d%0H%M%S
    date +%+y%+m%+d%+H%+M%S
    date +%0y%0m%0d%0H%0M%S
    date +%+y%+m%+d%+H%+M%+S
    date +%0y%0m%0d%0H%0M%0S
    上面的👆这些是等效果的
    左边第一个加号"+"表示
    测试执行

    z@n100-1:~$ date "+%y%m%d%H%M%S"
    date +"%y%m%d%H%M%S"
    date +%+y%m%d%H%M%S
    date +%0y%m%d%H%M%S
    date +%+y%+m%+d%H%M%S
    date +%0y%0m%0d%H%M%S
    date +%+y%+m%+d%+H%M%S
    date +%0y%0m%0d%0H%M%S
    date +%+y%+m%+d%+H%+M%S
    date +%0y%0m%0d%0H%0M%S
    date +%+y%+m%+d%+H%+M%+S
    date +%0y%0m%0d%0H%0M%0S
    240721060155
    240721060155
    240721060155
    240721060155
    240721060155
    240721060155
    240721060155
    240721060155
    240721060155
    240721060155
    240721060155
    240721060155
    
  3. +在日期运算中标示正号,可以省略
    例如: 一秒后的写法

    date --date "1second"
    date --date "+1second"
    date --date "1 second"
    date --date "+1 second"
    

格式化中的占位符

  • %% 字面上的百分号 %
  • %a 当前区域设置的星期几的缩写(例如:日)
  • %A 当前区域设置的星期几的全称(例如:星期日)
  • %b 当前区域设置的月份缩写(例如:1月)
  • %B 当前区域设置的月份全称(例如:一月)
  • %c 当前区域设置的日期和时间(例如:2005年03月03日 星期四 23时05分25秒)
  • %C 世纪(指年份的最高两位);类似 %Y,但省略最后两位数(例如:20)
  • %d 日(例如:01)
  • %D 日期;等于 %m/%d/%y
  • %e 日,以空格填充;等于 %_d
  • %F 完整的日期;等于 %+4Y-%m-%d
  • %g ISO 周数年的最后两位(参见 %G)
  • %G ISO 周数年(参见 %V);一般只和 %V 一起使用
  • %h 等于 %b
  • %H 小时 (00…23)
  • %I 小时 (01…12)
  • %j 一年中的第几日 (001…366)
  • %k 小时,以空格填充 ( 0…23);等于 %_H
  • %l 小时,以空格填充 ( 1…12);等于 %_I
  • %m 月 (01…12)
  • %M 分钟 (00…59)
  • %n 换行
  • %N 纳秒 (000000000…999999999)
  • %p 当前区域设置中 AM 或 PM 的等价说法(“上午” 或 “下午”);未知则为空
  • %P 类似 %p,但使用小写
  • %q 季度 (1…4)
  • %r 当前区域设置中 12 小时制钟表时间(例如:下午 11时11分04秒)
  • %R 24 小时制的小时和分钟;等于 %H:%M
  • %s 自 Epoch (1970-01-01 00:00 UTC) 以来的秒数
  • %S 秒 (00…60)
  • %t 制表符
  • %T 时间;等于 %H:%M:%S
  • %u 星期几 (1…7);1 代表星期一
  • %U 一年中的第几周,以周日为每周第一天 (00…53)
  • %V ISO 周数,以周一为每周第一天 (01…53)
  • %w 星期几 (0…6);0 代表星期日
  • %W 一年中的第几周,以周一为每周第一天 (00…53)
  • %x 当前区域设置的日期表示法(例如:1999年12月31日)
  • %X 当前区域设置的时间表示法(例如:23时13分48秒)
  • %y 年的最后两位 (00…99)
  • %Y
  • %z +hhmm 数字时区(例如:-0400)
  • %:z +hh:mm 数字时区(例如:-04:00)
  • %::z +hh:mm:ss 数字时区(例如:-04:00:00)
  • %:::z 数字时区,精度上有必要时加 “:”(例如:-04、+05:30)
  • %Z 字母时区缩写(例如:EDT)

上面这些百分号%开头的占位符, 百分号%后可以插入一些字符标志选项, 默认不插入等效插入0, 如 %M等效%0M, %S等效%0S
以下可选的标志可以跟在 “%” 后:

  • - (连字符)不填充该字段
  • _ (下划线)以空格填充
  • 0 (数字 0)以 0 填充
  • + 以 0 填充,并且在超过四位数的未来年份之前添加 “+” 符号
  • ^ 如果可能,使用大写字母
  • # 如果可能,使用相反的大小写

一些+加号格式化输出例子

标准格式

date "+%Y-%m-%d %H:%M:%S"
z@n100-1:~$ date "+%Y-%m-%d %H:%M:%S"
2024-07-21 05:54:17
date "+%Y-%m-%dT%H:%M:%S"
z@n100-1:~$ date "+%Y-%m-%dT%H:%M:%S"
2024-07-21T05:56:33

中文

date +"%Y年 %m月 %d日  星期%a    %H时%M分"
[z@3050 ~]$ date +"%Y年 %m月 %d日  星期%a    %H时%M分"
2024年 07月 21日  星期日    06时09分

0补位:[无(默认)|0|+], 不补位用连字符(横杆,减号)-

 # 0补位
date +"%y%m%d%H%M%S"
date +"%+y%+m%+d%+H%+M%+S"
date +"%0y%0m%0d%0H%0M%0S"
# 不补位
date +"%-y%-m%-d%-H%-M%-S"
结果:
240721062435
240721062435
240721062435
2472162435
# 0补位
date +"%Y年 %m月 %d日  星期%a    %H时%M分"
date +"%0Y年 %0m月 %0d日  星期%0a    %H时%0M分"
# 不补位
date +"%-Y年 %-m月 %-d日  星期%-a    %-H时%-M分"
结果:
2024年 07月 21日  星期日    06时25分
2024年 07月 21日  星期日    06时25分
2024721日  星期日    6时25分

选项 -d (--date) 可用于运算, 或格式转换

运算

增加减少天数, 多少天前, 多少天后

30天前

# 30天前
date    -d "30 day ago"
date    -d "30day ago" #数字和day可以没有空格, day和ago要有空格
date    -d "-30 day"
date    -d "-30day"
# 30天前, 并指定格式输出
date    -d "30 day ago"    +"%0Y年 %0m月 %0d日  星期%0a    %H时%0M分"

3天后

# 3天后
date    -d "3 day"
date    -d "+3 day"
date    -d "3day"
date    -d "+3day"
# 30天后, 并指定格式输出
date    -d "3 day"    +"%0Y年 %0m月 %0d日  周%0a    %H时%0M分"

年运算

三年前

date --date "3 year ago"
date --date "3year ago"
date --date "+3year ago"
date --date "+3 year ago"
date --date "-3 year"
date --date "-3year"

三年后

date -d "3 year"
date -d "+3 year"
date -d "3year"
date -d "+3year"
date -d "-3 year ago"  ### 负负得正
date -d "-3year ago" ### 负负得正

月运算

三月前

date --date "3 month ago"
date --date "3month ago"
date --date "+3month ago"
date --date "+3 month ago"
date --date "-3 month"
date --date "-3month"

三月后

date -d "3 month"
date -d "+3 month"
date -d "3month"
date -d "+3month"
date -d "-3 month ago"  ### 负负得正
date -d "-3month ago" ### 负负得正

日运算

三日前

date --date "3 day ago"
date --date "3day ago"
date --date "+3day ago"
date --date "+3 day ago"
date --date "-3 day"
date --date "-3day"

三日后

date -d "3 day"
date -d "+3 day"
date -d "3day"
date -d "+3day"
date -d "-3 day ago"  ### 负负得正
date -d "-3day ago" ### 负负得正

时运算

三时前

date --date "3 hour ago"
date --date "3hour ago"
date --date "+3hour ago"
date --date "+3 hour ago"
date --date "-3 hour"
date --date "-3hour"

三时后

date -d "3 hour"
date -d "+3 hour"
date -d "3hour"
date -d "+3hour"
date -d "-3 hour ago"  ### 负负得正
date -d "-3hour ago" ### 负负得正

分运算

三分前

date --date "3 minute ago"
date --date "3minute ago"
date --date "+3minute ago"
date --date "+3 minute ago"
date --date "-3 minute"
date --date "-3minute"

三分后

date -d "3 minute"
date -d "+3 minute"
date -d "3minute"
date -d "+3minute"
date -d "-3 minute ago"  ### 负负得正
date -d "-3minute ago" ### 负负得正

秒运算

三秒前

date --date "3 second ago"
date --date "3second ago"
date --date "+3second ago"
date --date "+3 second ago"
date --date "-3 second"
date --date "-3second"

三秒后

date -d "3 second"
date -d "+3 second"
date -d "3second"
date -d "+3second"
date -d "-3 second ago"  ### 负负得正
date -d "-3second ago" ### 负负得正

时间加减操作,并指定格式输出

date                           # 当前, 按默认格式输出
date -d "+1 day"               # 一天后, 按默认格式输出
date +%Y%m%d                   # 当前, 指定输出格式
date -d "-3 year" +%Y%m%d      # 三年前 , 并指定输出格式
date -d "+3 year" +%Y%m%d      # 三年后 , 并指定输出格式
date -d "-1 month" +%Y%m%d     # 上月 , 并指定输出格式
date -d "+1 month" +%Y%m%d     # 下月 , 并指定输出格式
date -d "-1 day" +%Y%m%d       # 昨天 , 并指定输出格式
date -d "+1 day" +%Y%m%d       # 明天 , 并指定输出格式
date -d "-1 week"         # 上周
date -d "+1 week"         # 下周
date -d "-1 hour"         # 一小时前
date -d "+1 hour"         # 一小时后
date -d "-15 minute"      # 上一刻
date -d "+15 minute"      # 下一刻
date -d "-1 second"       # 上一秒
date -d "+1 second"       # 下一秒

日期格式转换

-d按标准格式指定一个时间, 然后用加号+指定输出格式
注意:-d-s相比, -d是创造一个时间,不会改变系统时间, -s是设置系统时间

date    -d "2024-07-21 07:55:55"    +"%0Y年 %0m月 %0d日  周%0a    %H时%0M分"

Fedora40 的 date --help

root@fedora:~# date --help
用法:date [选项]... [+格式]
 或:date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
按照给定的 <格式> 显示日期和时间。
使用了 -s 选项或 [MMDDhhmm[[CC]YY][.ss]] 参数时,设置日期和时间。

长选项的必选参数对于短选项也是必选的。
  -d, --date=字符串          显示指定 <字符串> 所描述的时间,而不是 "now"
      --debug                对日期的解析过程进行注解,
                              对不规范的用法进行警告,并输出到标准错误
  -f, --file=日期文件        类似 --date;对 <日期文件> 的每一行执行一次
  -I[格式], --iso-8601[=格式]  以 ISO 8601 格式输出日期/时间。
                                 <格式>="date" 时只输出日期(默认行为),
                                 当其为 "hours""minutes""seconds""ns"
                                 时则按照所指示的精确度显示日期和时间。
                                 示例:2006-08-14T02:34:56-06:00
  --resolution               输出时间戳的可用精度
                               例如:0.000000001
  -R, --rfc-email            以 RFC 5322 格式输出日期和时间。
                               例如:Mon, 14 Aug 2006 02:34:56 -0600
      --rfc-3339=格式        以 RFC 3339 格式输出日期/时间。
                               <格式>="date""seconds""ns",
                               按照所指示的精确度显示日期和时间。
                               例如:2006-08-14 02:34:56-06:00
  -r, --reference=文件       显示 <文件> 的最后修改时间
  -s, --set=字符串           将时间设置为 <字符串> 所描述的时间
  -u, --utc, --universal     按照协调世界时 (UTC) 显示或设置时间
      --help        显示此帮助信息并退出
      --version     显示版本信息并退出

所有用于指定要显示的时间的选项都是互斥的。
这些选项包括:--date、--file、--reference、--resolution。

<格式> 控制输出格式。支持解释的序列有:

  %%   字面上的百分号 %
  %a   当前区域设置的星期几的缩写(例如:日)
  %A   当前区域设置的星期几的全称(例如:星期日)
  %b   当前区域设置的月份缩写(例如:1月)
  %B   当前区域设置的月份全称(例如:一月)
  %c   当前区域设置的日期和时间(例如:2005年03月03日 星期四 23时05分25秒)
  %C   世纪(指年份的最高两位);类似 %Y,但省略最后两位数(例如:20)
  %d   日(例如:01)
  %D   日期;等于 %m/%d/%y
  %e   日,以空格填充;等于 %_d
  %F   完整的日期;等于 %+4Y-%m-%d
  %g   ISO 周数年的最后两位(参见 %G)
  %G   ISO 周数年(参见 %V);一般只和 %V 一起使用
  %h   等于 %b
  %H   小时 (00..23)
  %I   小时 (01..12)
  %j   一年中的第几日 (001..366)
  %k   小时,以空格填充 ( 0..23);等于 %_H
  %l   小时,以空格填充 ( 1..12);等于 %_I
  %m   月 (01..12)
  %M   分钟 (00..59)
  %n   换行
  %N   纳秒 (000000000..999999999)
  %p   当前区域设置中 AM 或 PM 的等价说法("上午""下午");未知则为空
  %P   类似 %p,但使用小写
  %q   季度 (1..4)
  %r   当前区域设置中 12 小时制钟表时间(例如:下午 11时11分04秒)
  %R   24 小时制的小时和分钟;等于 %H:%M
  %s   自 Epoch (1970-01-01 00:00 UTC) 以来的秒数
  %S   秒 (00..60)
  %t   制表符
  %T   时间;等于 %H:%M:%S
  %u   星期几 (1..7);1 代表星期一
  %U   一年中的第几周,以周日为每周第一天 (00..53)
  %V   ISO 周数,以周一为每周第一天 (01..53)
  %w   星期几 (0..6);0 代表星期日
  %W   一年中的第几周,以周一为每周第一天 (00..53)
  %x   当前区域设置的日期表示法(例如:1999年12月31日)
  %X   当前区域设置的时间表示法(例如:23时13分48秒)
  %y   年的最后两位 (00..99)
  %Y   年
  %z   +hhmm 数字时区(例如:-0400)
  %:z  +hh:mm 数字时区(例如:-04:00)
  %::z  +hh:mm:ss 数字时区(例如:-04:00:00)
  %:::z  数字时区,精度上有必要时加 ":"(例如:-04、+05:30)
  %Z   字母时区缩写(例如:EDT)

默认情况下,date 输出的数字字段以 0 填充。
以下可选的标志可以跟在 "%" 后:

  -  (连字符)不填充该字段
  _  (下划线)以空格填充
  0  (数字 0)以 0 填充
  +  以 0 填充,并且在超过四位数的未来年份之前添加 "+" 符号
  ^  如果可能,使用大写字母
  #  如果可能,使用相反的大小写

在任何标志之后可以有一个可选的字段宽度,它是一个十进制数字;
然后是一个可选的修饰符,它可以是
E,表示如果可用,使用区域设置的另一种表示法,或者
O,表示如果可用,使用区域设置的另一套数字符号。

示例:
将 Epoch (1970-01-01 UTC) 以来的秒数转换为日期
  $ date --date='@2147483647'

显示美国西海岸的当前时间(请使用 tzselect(1) 来查询 TZ 的具体数值)
  $ TZ='America/Los_Angeles' date

显示美国西海岸当地时间为下一个星期五早上九点时,此计算机的本地时间
  $ date --date='TZ="America/Los_Angeles" 09:00 next Fri'

GNU coreutils 在线帮助:<https://www.gnu.org/software/coreutils/>
请向 <http://translationproject.org/team/zh_CN.html> 报告任何翻译错误
完整文档 <https://www.gnu.org/software/coreutils/date>
或者在本地使用:info '(coreutils) date invocation'

Ubuntu24.04的 date --help

root@n100-1:/etc/samba# date --help
用法:date [选项]... [+格式]
 或:date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
按照给定的 <格式> 显示日期和时间。
使用了 -s 选项或 [MMDDhhmm[[CC]YY][.ss]] 参数时,设置日期和时间。

长选项的必选参数对于短选项也是必选的。
  -d, --date=字符串          显示指定 <字符串> 所描述的时间,而不是 "now"
      --debug                对日期的解析过程进行注解,
                              对不规范的用法进行警告,并输出到标准错误
  -f, --file=日期文件        类似 --date;对 <日期文件> 的每一行执行一次
  -I[格式], --iso-8601[=格式]  以 ISO 8601 格式输出日期/时间。
                                 <格式>="date" 时只输出日期(默认行为),
                                 当其为 "hours""minutes""seconds""ns"
                                 时则按照所指示的精确度显示日期和时间。
                                 示例:2006-08-14T02:34:56-06:00
  --resolution               输出时间戳的可用精度
                               例如:0.000000001
  -R, --rfc-email            以 RFC 5322 格式输出日期和时间。
                               例如:Mon, 14 Aug 2006 02:34:56 -0600
      --rfc-3339=格式        以 RFC 3339 格式输出日期/时间。
                               <格式>="date""seconds""ns",
                               按照所指示的精确度显示日期和时间。
                               例如:2006-08-14 02:34:56-06:00
  -r, --reference=文件       显示 <文件> 的最后修改时间
  -s, --set=字符串           将时间设置为 <字符串> 所描述的时间
  -u, --utc, --universal     按照协调世界时 (UTC) 显示或设置时间
      --help        显示此帮助信息并退出
      --version     显示版本信息并退出

所有用于指定要显示的时间的选项都是互斥的。
这些选项包括:--date、--file、--reference、--resolution。

<格式> 控制输出格式。支持解释的序列有:

  %%   字面上的百分号 %
  %a   当前区域设置的星期几的缩写(例如:日)
  %A   当前区域设置的星期几的全称(例如:星期日)
  %b   当前区域设置的月份缩写(例如:1月)
  %B   当前区域设置的月份全称(例如:一月)
  %c   当前区域设置的日期和时间(例如:2005年03月03日 星期四 23时05分25秒)
  %C   世纪(指年份的最高两位);类似 %Y,但省略最后两位数(例如:20)
  %d   日(例如:01)
  %D   日期;等于 %m/%d/%y
  %e   日,以空格填充;等于 %_d
  %F   完整的日期;等于 %+4Y-%m-%d
  %g   ISO 周数年的最后两位(参见 %G)
  %G   ISO 周数年(参见 %V);一般只和 %V 一起使用
  %h   等于 %b
  %H   小时 (00..23)
  %I   小时 (01..12)
  %j   一年中的第几日 (001..366)
  %k   小时,以空格填充 ( 0..23);等于 %_H
  %l   小时,以空格填充 ( 1..12);等于 %_I
  %m   月 (01..12)
  %M   分钟 (00..59)
  %n   换行
  %N   纳秒 (000000000..999999999)
  %p   当前区域设置中 AM 或 PM 的等价说法("上午""下午");未知则为空
  %P   类似 %p,但使用小写
  %q   季度 (1..4)
  %r   当前区域设置中 12 小时制钟表时间(例如:下午 11时11分04秒)
  %R   24 小时制的小时和分钟;等于 %H:%M
  %s   自 Epoch (1970-01-01 00:00 UTC) 以来的秒数
  %S   秒 (00..60)
  %t   制表符
  %T   时间;等于 %H:%M:%S
  %u   星期几 (1..7);1 代表星期一
  %U   一年中的第几周,以周日为每周第一天 (00..53)
  %V   ISO 周数,以周一为每周第一天 (01..53)
  %w   星期几 (0..6);0 代表星期日
  %W   一年中的第几周,以周一为每周第一天 (00..53)
  %x   当前区域设置的日期表示法(例如:1999年12月31日)
  %X   当前区域设置的时间表示法(例如:23时13分48秒)
  %y   年的最后两位 (00..99)
  %Y   年
  %z   +hhmm 数字时区(例如:-0400)
  %:z  +hh:mm 数字时区(例如:-04:00)
  %::z  +hh:mm:ss 数字时区(例如:-04:00:00)
  %:::z  数字时区,精度上有必要时加 ":"(例如:-04、+05:30)
  %Z   字母时区缩写(例如:EDT)

默认情况下,date 输出的数字字段以 0 填充。
以下可选的标志可以跟在 "%" 后:

  -  (连字符)不填充该字段
  _  (下划线)以空格填充
  0  (数字 0)以 0 填充
  +  以 0 填充,并且在超过四位数的未来年份之前添加 "+" 符号
  ^  如果可能,使用大写字母
  #  如果可能,使用相反的大小写

在任何标志之后可以有一个可选的字段宽度,它是一个十进制数字;
然后是一个可选的修饰符,它可以是
E,表示如果可用,使用区域设置的另一种表示法,或者
O,表示如果可用,使用区域设置的另一套数字符号。

示例:
将 Epoch (1970-01-01 UTC) 以来的秒数转换为日期
  $ date --date='@2147483647'

显示美国西海岸的当前时间(请使用 tzselect(1) 来查询 TZ 的具体数值)
  $ TZ='America/Los_Angeles' date

显示美国西海岸当地时间为下一个星期五早上九点时,此计算机的本地时间
  $ date --date='TZ="America/Los_Angeles" 09:00 next Fri'

GNU coreutils 在线帮助:<https://www.gnu.org/software/coreutils/>
请向 <http://translationproject.org/team/zh_CN.html> 报告任何翻译错误
完整文档 <https://www.gnu.org/software/coreutils/date>
或者在本地使用:info '(coreutils) date invocation'

CentOS6.9的 date --help

[z@1235vm-c69w 桌面]$ date --help
用法:date [选项]... [+格式]
 或:date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
以给定的格式显示当前时间,或是设置系统日期。

  -d,--date=字符串		显示指定字符串所描述的时间,而非当前时间
  -f,--file=日期文件		类似--date,从日期文件中按行读入时间描述
  -r, --reference=文件		显示文件指定文件的最后修改时间
  -R, --rfc-2822		以RFC 2822格式输出日期和时间
				例如:2006年8月7日,星期一 12:34:56 -0600
      --rfc-3339=TIMESPEC	以RFC 3339 格式输出日期和时间。
				TIMESPEC=`date',`seconds',或 `ns' 
				表示日期和时间的显示精度。
				日期和时间单元由单个的空格分开:
				2006-08-07 12:34:56-06:00
  -s, --set=字符串         	设置指定字符串来分开时间
  -u, --utc, --universal	输出或者设置协调的通用时间
      --help		显示此帮助信息并退出
      --version		显示版本信息并退出

给定的格式FORMAT 控制着输出,解释序列如下:

  %%	一个文字的 %
  %a	当前locale 的星期名缩写(例如: 日,代表星期日)
  %A	当前locale 的星期名全称 (如:星期日)
  %b	当前locale 的月名缩写 (如:一,代表一月)
  %B	当前locale 的月名全称 (如:一月)
  %c	当前locale 的日期和时间 (如:2005年3月3日 星期四 23:05:25)
  %C	世纪;比如 %Y,通常为省略当前年份的后两位数字(例如:20)
  %d	按月计的日期(例如:01)
  %D	按月计的日期;等于%m/%d/%y
  %e	按月计的日期,添加空格,等于%_d
  %F	完整日期格式,等价于 %Y-%m-%d
  %g	ISO-8601 格式年份的最后两位 (参见%G)
  %G	ISO-8601 格式年份 (参见%V),一般只和 %V 结合使用
  %h	等于%b
  %H	小时(00-23)
  %I	小时(00-12)
  %j	按年计的日期(001-366)
  %k	时(0-23)
  %l	时(1-12)
  %m	月份(01-12)
  %M	分(00-59)
  %n	换行
  %N	纳秒(000000000-999999999)
  %p	当前locale 下的"上午"或者"下午",未知时输出为空
  %P	与%p 类似,但是输出小写字母
  %r	当前locale 下的 12 小时时钟时间 (如:11:11:04 下午)
  %R	24 小时时间的时和分,等价于 %H:%M
  %s	自UTC 时间 1970-01-01 00:00:00 以来所经过的秒数
  %S	秒(00-60)
  %t	输出制表符 Tab
  %T	时间,等于%H:%M:%S
  %u	星期,1 代表星期一
  %U	一年中的第几周,以周日为每星期第一天(00-53)
  %V	ISO-8601 格式规范下的一年中第几周,以周一为每星期第一天(01-53)
  %w	一星期中的第几日(0-6),0 代表周一
  %W	一年中的第几周,以周一为每星期第一天(00-53)
  %x	当前locale 下的日期描述 (如:12/31/99)
  %X	当前locale 下的时间描述 (如:23:13:48)
  %y	年份最后两位数位 (00-99)
  %Y	年份
  %z +hhmm		数字时区(例如,-0400)
  %:z +hh:mm		数字时区(例如,-04:00)
  %::z +hh:mm:ss	数字时区(例如,-04:00:00)
  %:::z			数字时区带有必要的精度 (例如,-04,+05:30)
  %Z			按字母表排序的时区缩写 (例如,EDT)

默认情况下,日期的数字区域以0 填充。
以下可选标记可以跟在"%"后:

  - (连字符)不填充该域
  _ (下划线)以空格填充
  0 (数字0)以0 填充
  ^ 如果可能,使用大写字母
  # 如果可能,使用相反的大小写

在任何标记之后还允许一个可选的域宽度指定,它是一个十进制数字。
作为一个可选的修饰声明,它可以是E,在可能的情况下使用本地环境关联的
表示方式;或者是O,在可能的情况下使用本地环境关联的数字符号。

请向bug-coreutils@gnu.org 报告date 的错误
GNU coreutils 项目主页:<http://www.gnu.org/software/coreutils/>
GNU 软件一般性帮助:<http://www.gnu.org/gethelp/>
请向<http://translationproject.org/team/zh_CN.html> 报告date 的翻译错误
要获取完整文档,请运行:info coreutils 'date invocation'

  • 14
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kfepiza

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值