在类 Unix 系统中,日期被存储成一个整数,其大小为自世界标准时间(UTC)1970 年 1 月 1 日 0 时 0 分 0 秒起所流失的秒数。这种计时方式称为纪元时或Unix 时间。
-
读取日期
$ date
-
打印纪元时
$ date +%s
将指定日期转换成纪元时:
$ date --date "Thu Feb 28 16:58:10 CST 2019" +%s #--date用于提供日期串作为输入(也可以是 -d)
上面的命令在 OS X 系统中执行报错,只能使用下面这中格式:
$ date -j -f "%Y-%m-%d %H:%M:%S" "2015-09-28 10:20:32" +%s
-
格式化输出
$ date "+%d %B %Y"
-
设置日期和时间
$ date -s "Thu Feb 28 16:16:52 CST 2019" #需要管理员权限
-
测试脚本执行时间
#!/bin/sh start=$(date +%s) # 需要执行的脚本…… end=$(date +%s) difference=$(( end - start)) echo Time taken to execute commands is $difference seconds.
-
在脚本中生成延时
#!/bin/sh echo Count: tput sc; #存储光标位置 count=0; while true; do if [ $count -lt 40 ]; then let count++; sleep 1; #延时1秒 tput rc #恢复光标位置 tput ed #清除从当前光标位置到行尾之间的所有内容 echo $count; else exit 0; fi done
格式字符标
日期内容 | 格式 |
---|---|
星期 |
%a (例如: Sat)%A (例如: Saturday)%w (例如:3) |
月 |
%b (例如:Nov)%B (例如:November)%m (例如:03) |
日 |
%d (例如:31) |
固定格式日期(mm/dd/yy) |
%D (例如:10/18/10) |
年 |
%y (例如:10)%Y (例如:2010) |
小时 |
%I 或%H (例如:08) |
分钟 |
%M (例如:33) |
秒 |
%S (例如:10) |
纳秒 |
%N (例如:254354) |
Unix 纪元时(已秒为单位) |
%s (例如:1551342521) |
时区 |
%Z (例如:CST)%z (例如:+0800) |