自动校时
计算机硬件时钟--内部记录时间的BIOS<CMOS>
计算机系统的时间:--计算机软件时钟
主机时间同步化 Synchronize
NTP--Network Time Protocol 网络时间协议
DTSS -- Digital Time Synchronization Protocol
主机时间+计算传送的延迟误差
手动校时
计算机硬件: hwclock
计算机软件: date
修改命令 date -s "2017-07-01 07:01:00"
获取日历
cal
时间戳有到秒以及毫秒的,到秒的有10位,到毫秒有的有13位。
一般UNIX是记录到秒的。如果有13位的时间戳,记得转换
Linux 中命令-date
1.语法:date(选项)(参数)选项-d<字符串>显示字符串所指的日期与时间;-s<字符串>:根据字符串来设置日期与时间;-u:显示GMT;--help:在线帮助;--version:显示版本信息。参数<+时间日期格式>:指定显示时使用的日期时间格式。date是指linux下的GNUdate变量命令:所使用的目的区分出日期的格式区分出是获得日期还是时间戳mysql_v_today_stoday=$(date+%Y-%m-%d)yest=$(date-d"last-day $today"+%Y-%m-%d)week=$(date-d"$yest-$((`date -d $yest +%u`-1)) days"+%Y-%m-%d)today_s=$(date-d$today+%s000)yest_s=$(date-d$yest+%s000)week_s=$(date-d$week+%s000)GNUdate的日期加减运算是支持自然语言的-d主要有三种指令:last/next指令ago指令负数指令01.yest_s=$(date-d$yest+%s000)02.时间戳变动-可以得到过去的日期:yest_s=$(date-d"1 hour ago $yest"+%s000)yest_s=$(date-d"-1 hour ago $yest"+%s000)03.前后顺序以及横杠加不加yest_s=$(date-d"last hour $yest"+%s000)yest_s=$(date-d"last-hour $yest"+%s000)yest_s=$(date-d"next hour $yest"+%s000)yest_s=$(date-d"next-hour $yest"+%s000)yest_s=$(date-d"$yest last hour "+%s000)date里面时间的+-注意格式会影响结果/时区(最安全的写法是不要带符号,用自然语言即可)注意最好用自然语言,别用+1-1操作,某些早期版本(如RedHat4U7)不支持可能造成错误结果,而且这种写法会和时区语法冲突,容易出问题yest_s=$(date-d"+ 1 hour $yest"+%s000)yest_s=$(date-d"- 1 hour $yest"+%s000)2.时间格式变换从时间戳变为日期格式date-d@0//当时间戳为0的时候,可以看到时间为1970年08:00:00date-d'@1498863660'date-d'@1498863660'+%Y-%m-%ddate-d@1498863660+"%Y-%m-%d %H:%M:%S"从时间戳变为日期shell将时间字符串与时间戳互转--+%s表示输出时间戳date-d"$( date "+%Y-%m-%d%H:%M:%S")"+%sdate-dlast-day+%sdate-d'2017-07-01 22:14'+%s日期格式变换date-d"2017-07-01"+"%Y/%m/%d %H:%M:%S"3.今天日期--注意中间有空格#对应昨天日期date-dlast-day+%Y-%m-%ddate-d'last day'+%Y-%m-%d#对应周的周一date-d'last monday'+"%Y-%m-%d"#下周周一date-d'next monday'+"%Y-%m-%d"date-d"last sunday"+"%Y%m%d date +%w #获得当天是星期几 #今天本日期对应的月初日期 date +%Y%m01 date +%Y-%m-01 #今天对应的上个月月初 date -d '1 month ago' +%Y%m01 #本月月初 v_lm=`date +%Y%m01` #上个月月末 v_lm_rq=`date -d "${v_lm}lastday" +%Y%m%d` echo ${v_lm_rq}4.昨天-特定日期所对应的各个时间 date -d "yesterday" +%Y-%m-%d yestD=`date -d "yesterday" +%Y%m%d` echo ${yestD} #昨天日期对应的月初日期 date -d '1 day ago' +%Y-%m-01 #昨天日期的周一 #写法01.昨天日期 v_yesterday=`date -d "yesterday" +%Y%m%d` #昨天日期对应的周一的日期 v_lm_week=`date -d "${v_yesterday}lastmonday" +%Y-%m-%d` echo ${v_lm_week} #写法02.将当前日期赋值给DATE变量 DATEA=$(date -d "yesterday" +%Y%m%d) date -d "${DATEA}lastmonday" +%Y-%m-%d #写法03 #date -d "$(date-d"yesterday"+%Y%m%d)lastmonday"+%Y-%m-%d
Linux中和时间有关的
Linux常驻内存
daemon service
linux定时任务crontab
Linux下 ntp时间同步服务器
时间
时间段--时间点
1. second minute hour day month year
2. morning noon afternoon evening tonight night
3.week weekend Monday Tuesday Wednesday Thursday Friday Saturday Sunday
4.月份
January Jan February Feb March Mar
April Apr May May June Jun
July Jul August Aug September Sep
October Oct November Nov December Dec
5.季度和季节
anniversary
spring summer autumn/fall winter
6.年代世纪
century age 1980s
参考:
Linux shell 获取上上月月末日期 http://www.cnblogs.com/valinfo/p/7099335.html
date命令 http://man.linuxde.net/date