专栏首页释然IT杂谈玩转 Linux 环境下日期的语法

玩转 Linux 环境下日期的语法

当你刚开始学习 Linux 时,可能查个时间也就执行个 date 命令来查看,但 date 出来的时间日期格式以及内容可能不是我们想要的,那么我们就需要对他进一步的输出,从而来达到我们想要的格式。今天来带大家玩转 Linux 环境下日期的基本语法,不妨你可以上机操作,效果会更好。下面终端框查询每条的语法稍有不同,可进行左右滑动进行查看哦~

常用的时间/日期域

date命令使用时,不带任何参数即可获取当前系统时间日期。一般是CST标准格式的时间。

[root@localhost ~]# date
2019年 04月 08日 星期一 09:43:37CST

除了上述不加任何参数外,还可以通过date +%r的方式来获取当前时间;

[root@localhost ~]# date +%r
下午 01时22分06秒

获取特定格式,命令为:date + '格式',需要注意的是:时间域的大小写。

[root@localhost ~]# date +‘%Y-%m-%d’         #以中文的引号进行输出
‘2019-04-08’
[root@localhost ~]# date +%Y-%m-%d           #不带引号的输出格式
2019-04-08
[root@localhost ~]# date +'%Y-%m-%d'          #以英文的引号进行输出
2019-04-08
[root@localhost ~]# date +'%Y/%m/%d %H:%M:%S'    #特定格式,进行显示年月日,时分秒
2019/04/08 09:47:44

获取昨天、前天以及前几天的日期(年月日、时分秒),可加上 -d 的参数。

[root@localhost ~]# date -d 'yesterday'
2019年 04月 07日 星期日 09:48:41 CST
[root@localhost ~]# date -d last-day +%Y%m%d
20190407
[root@localhost ~]# date -d 'yesterday' +'%Y/%m/%d %H:%M:%S'
2019/04/07 10:02:26
[root@localhost ~]# date -d last-day +'%Y%m%d %H:%M:%S'
20190407 10:43:04
[root@localhost ~]# date -d 'today -1 day' +'%Y-%m-%d'
2019-04-07
[root@localhost ~]# date -d 'yesterday -1 day' +'%Y-%m-%d'
2019-04-06
[root@localhost ~]# date -d 'yesterday -1 day' +'%Y-%m-%d %H:%M:%S' #当前日期前两天的时间点
2019-04-06 11:09:35
[root@localhost ~]# date -d "6 days ago" +'%Y-%m-%d %H:%M:%S'    #当前日期前6天的时间点
2019-04-02 11:13:23

获取明天、后天以及当前日期后几天的时间点查找语法;

[root@localhost ~]# date -d 'tomorrow'
2019年 04月 09日 星期二 10:51:21 CST
[root@localhost ~]# date -d tomorrow +%Y%m%d
20190409
[root@localhost ~]# date -d 'tomorrow' +'%Y%m%d %H:%M:%S'
20190409 10:53:56
[root@localhost ~]# date -d tomorrow +'%Y%m%d %H:%M:%S'
20190409 10:54:57
[root@localhost ~]# date -d tomorrow +'%Y-%m-%d %H:%M:%S'
2019-04-09 10:56:09
[root@localhost ~]# date -d tomorrow +'%Y-%m-%d'
2019-04-09
[root@localhost ~]# date -d next-day +%Y%m%d
20190409
[root@localhost ~]# date -d next-day +'%Y-%m-%d'
2019-04-09
[root@localhost ~]# date -d 'next-day' +'%Y%m%d %H:%M:%S'
20190409 10:54:06
[root@localhost ~]# date -d next-day +'%Y%m%d %H:%M:%S'
20190409 10:55:12
[root@localhost ~]# date -d next-day +'%Y-%m-%d %H:%M:%S'
2019-04-09 10:55:59
[root@localhost ~]# date -d 'tomorrow -l' +'%Y-%m-%d'     #当前日期后天的年月日
2019-04-10
[root@localhost ~]# date -d 'tomorrow -l day' +'%Y-%m-%d'  #当前日期后天的年月日
2019-04-11
[root@localhost ~]# date -d "-6 days ago" +'%Y-%m-%d %H:%M:%S' #当前日期后6天的时间点
2019-04-14 11:14:51

获取当前时间的前一个小时的语法;

[root@localhost ~]# date -d 'today -1 hour' +'%Y%m%d%H'
2019040810
[root@localhost ~]# date +'%Y-%m-%d %H:%M:%S' -d '-1 hours'
2019-04-08 10:22:01

获取指定日期前一天和后一天的日期语法;

[root@localhost ~]# date -d '20190101 -1 day' +'%Y%m%d'
20181231
[root@localhost ~]# date -d '20190101 yesterday' +'%Y%m%d'
20181231
[root@localhost ~]# date -d '20190101 yesterday -5 day' +'%Y%m%d'
20181226
[root@localhost ~]# date -d '20190101 yesterday' +'%Y%m%d %H:%M:%S'
20181231 00:00:00
[root@localhost ~]# date -d '20190101 yesterday -5 day' +'%Y%m%d %H:%M:%S'
20181226 00:00:00
[root@localhost ~]# date -d '20190101 1 day' +'%Y%m%d'
20190102
[root@localhost ~]# date -d '20190101 -l day' +'%Y%m%d'
20190102
[root@localhost ~]# date -d '20190101 tomorrow' +'%Y%m%d'
20190102
[root@localhost ~]# date -d '20190101 tomorrow 6 day' +'%Y%m%d'
20190108
[root@localhost ~]# date -d '20190101 tomorrow' +'%Y%m%d %H:%M:%S'
20190102 00:00:00
[root@localhost ~]# date -d '20190101 tomorrow 6 day' +'%Y%m%d %H:%M:%S'
20190108 00:00:00

获取一周前的日期及时间点语法;

[root@localhost ~]# date -d "1 week ago" +%Y%m%d
20190401
[root@localhost ~]# date -d "1 week ago" +'%Y%m%d %H:%M:%S'
20190401 12:56:04

获取上月和下月的年份及月份;

[root@localhost ~]# date -d last-month +%Y%m
201903
[root@localhost ~]# date -d next-month +%Y%m
201905

获取上一年的年份及下一年的年份;

[root@localhost ~]# date -d last-year +%Y
2018
[root@localhost ~]# date -d next-year +%Y
2020

获取一年前的日期及时间点语法;

[root@localhost ~]# date -d "1 year ago" +%Y%m%d
20180408
[root@localhost ~]# date -d "1 year ago" +'%Y%m%d %H:%M:%S'
20180408 12:58:10

获取当前日期是这一年中的第几天;

[root@localhost ~]# date "+%j"
098

获取当前的月份/日份/年份;

[root@localhost ~]# date +%D
04/08/19

获取整年每月的日历,可执行命令:cal -y 来查看;

获取当前本月以及前后两个月的月历,可执行命令:cal -3来查看;如不加任何参数,则显示当前月份的月历;

将日期转换为时间戳

[root@localhost ~]# date -d "Mar 6 23:59:59CST 2019" +%s
1551887999

将时间戳转换为日期

[root@localhost ~]# date -d @1551887999
2019年 03月 06日 星期三 23:59:59CST

将时间戳转换为日期,并按特定格式进行输出。

[root@localhost ~]# date -d @1551887999 +'%Y%m%d %H:%M:%S'
20190306 23:59:59

END

本文分享自微信公众号 - 释然IT杂谈(gh_ad4551519762)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-09-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux环境下使用glog日志库的方法

    Linux使用静态库来测试,copy静态库libglog.a和src/glog的头文件到自己的工程目录,创建main.cpp文件,添加如下代码:

    砸漏
  • CentOS 之父创造的 Rocky Linux 8.3 发布了!内附下载链接及安装教程

    CentOS 项目去年(2020年12月20日)宣布了「 CentOS 战略的转变」:CentOS 8 将于2021年结束。说明在这之后不会出现CentOS 9...

    民工哥
  • Linux下配置jdk环境的方法

    1.去官网下载适用于linux的jdk包,如jdk-8u162-linux-x64.tar.gz

    砸漏
  • Homestead + laravel-mix 环境下 hmr 的两种玩法

    我在前几天刚写过的《让 F5 歇一会儿——laravel-mix 自动刷新之道》[1]中介绍了 laravel-mix 实现自动刷新的几种方法,其中就有涉及 h...

    overtrue
  • [Linux] PHP程序员玩转Linux系列-lnmp环境的搭建

    在平常的工作中,我作为PHP程序员经常要搭建一下环境,这个环境就是Linux系统下安装nginx,php,mysql这三个软件,对软件进行配置,然后在浏览器上能...

    陶士涵
  • 解决Linux环境下Tomcat日志乱码的问题

    Linux上部的Tomcat服务器中部署了Java Web应用,查看日志的时候发现里面的中文全部是乱码,把文件拖拽到本地Windows上全是问号。从其他系统拽过...

    飞奔去旅行
  • Linux 环境下安装 Python3 的操作方法

    目前Linux下的绝大部分系统都自带了python2.x的版本,而现在python的主流版本已经到了3.x。为此我们需要将python3.x安装在自己的Linu...

    释然
  • Linux 环境下安装 Python3 的操作方法

    目前Linux下的绝大部分系统都自带了python2.x的版本,而现在python的主流版本已经到了3.x。为此我们需要将python3.x安装在自己的Linu...

    conanma
  • Linux C编程之一:Linux下c语言的开发环境

    3、hello.c是我们的源程序文件; 4、执行./hello 就可以看到程序的输出结果 查看gcc版本号: gcc -version 5、函数库:gli...

    w4979的博客
  • Linux C编程之一:Linux下c语言的开发环境

    glibc是提供系统条用和调用函数的C库,如open,malloc,printf等

    w4979的博客
  • GitHub 标星 5w+!Python 新手 100 天学习计划,这次再学不会算我输!

    说明:我最近整理了一份Python基础系列文章,如果你是Python新手或者你的Python基础知识点忘记了,可以看看今日第三条文章。

    龙哥
  • [Linux] PHP程序员玩转Linux系列-自动备份与SVN

    我的代码经常在开发修改,为了代码的安全性,比如哪天误删了文件,或者哪天改错东西了,可以恢复回来,我要搞代码备份.备份代码,我先做最简单的,使用linux的定时机...

    陶士涵
  • Linux环境(CentOS6.7 64位)下安装subversion1.9.5的方法

    本文实例讲述了Linux环境(CentOS6.7 64位)下安装subversion1.9.5的方法。分享给大家供大家参考,具体如下:

    砸漏
  • GitHub 标星 5w+!Python 新手 100 天学习计划,这次再学不会算我输!

    作为目前最火也是最实用的编程语言,Python 不仅是新手入门程序界的首选,也逐渐成为了从大厂到小厂,招牌需求 list 的必要一条。

    GitHubDaily
  • 十分钟搞定在win10下安装docker

    docker可不是什么新技术了,至今已经6年多了。现在甚至在面试中会这个是加分项。如果你目前从事开发多年,不管是前端还是后端,不管是哪一种编程语言。你真该玩一玩...

    码农小胖哥
  • C编程之一:Linux下c语言的开发环境

    glibc是提供系统条用和调用函数的C库,如open,malloc,printf等

    w4979的博客
  • 【玩转腾讯云】征文活动获奖名单公布

    由云+社区联合腾讯云免费体验馆及各产品团队举办【玩转腾讯云】征文活动,吸引入驻作者积极参加,非常感谢各位作者的参与。经过评委老师从产品创新性、实用性、可借鉴性、...

    云加社区
  • 一文精通 crontab 从入门到出坑

    此篇技术博文主要介绍的是crontab,Linux下的计划任务管理工具。涉及内容包括crontab使用配置、常见坑的分析和编者总结的错误调试方法。

    波罗学
  • 一文精通 crontab 从入门到出坑

    此篇技术博文主要介绍的是crontab,Linux下的计划任务管理工具。涉及内容包括crontab使用配置、常见坑的分析和编者总结的错误调试方法。

    波罗学

扫码关注云+社区

领取腾讯云代金券