Linux下Shell日期的格式,你知道几个?无论使用何种语言,日期/时间都是一个非常重要的值。比如我们保存日志的时候,往往是某个前缀加上当前时间,这样日志文件名就可以唯一。在Shell环境下,我们用来获取时间的命令是date,但是date输出的时间和日期的格式和内容可能不是我们想要的,所以我们可能需要对其进行一些格式化输出。常用的时间字段如下:%Y年(例如:1970、2018等)%m月(01..12)%d日(01..31)%H时(00..23)%M分钟(00..59)%S秒(00..59)使用不带参数的date命令获取当前时间和日期。这样得到的时间一般是CST标准格式的时间。[alvin@VM_0_16_centos~]$dateSatNov322:01:57CST2018获取具体格式,命令为:date+'format',注意这里区分大小写。[alvin@VM_0_16_centos~]$date+'%Y-%m-%d'2018-11-03[alvin@VM_0_16_centos~]$date+'%Y/%m/%d%H:%M:%S'2018/11/0322:08:14获取昨天的日期。可以将-d选项添加到上述命令中。[alvin@VM_0_16_centos~]$date-d'yesterday'+'%Y/%m/%d%H:%M:%S'2018/11/0222:24:31或[alvin@VM_0_16_centos~]$date-d'today-1day'+'%Y-%m-%d'2018-11-04获取当前时间的前一个小时[alvin@VM_0_16_centos~]$date-d'today-1hour'+'%Y%m%d%H'2018110414或[alvin@VM_0_16_centos~]$date+'%Y-%m-%d%H:%M:%S'-d'-1小时'2018-11-0414:43:38获取指定日期的前一天。这实际上是在询问相对时间。比如下面是国庆节前一天的日期:[alvin@VM_0_16_centos~]$date-d'20181001-1day'+'%Y%m%d'20180930把日期转换成时间戳[alvin@VM_0_16_centos~]$date-d"Nov415:49:41CST2018"+%s1541317781将时间戳转换回日期[alvin@VM_0_16_centos~]$date-d@1541317781SunNov415:49:41CST2018将时间戳转换为日期,并以特定格式显示[alvin@VM_0_16_centos~]$date-d@1541317781+'%Y%m%d%H:%M:%S'2018110415:49:41Formore精彩内容请关注公众号良旭Linux,在公众号回复1024免费获取5T技术资料,包括:Linux、C/C++、Python、树莓派、嵌入式、Java、人工智能等。公众号回复入群,邀请您加入达人如云技术交流群。最后,最近有很多朋友找我要一份Linux学习路线图,所以我结合自己的经验,利用业余时间熬夜一个月,整理了一本电子书。无论你是面试还是自我提升,相信都会对你有所帮助!免费送给大家,只求大家给我点个赞!电子书|LinuxDevelopmentLearningRoadmap也希望有小伙伴可以和我一起把这本电子书做得更完美!获得?希望老铁们来个三连击,让更多人看到这篇文章。推荐阅读:干货|程序员和高级架构师免费发送工件的必备资源|支持搜索的资源网站
