Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Linux date日期格式及加减运算

Linux date日期格式及加减运算

作者头像
阳光岛主
发布于 2019-02-19 07:38:04
发布于 2019-02-19 07:38:04
8.3K0
举报
文章被收录于专栏:米扑专栏米扑专栏

显示时间是个常用的命令,在写shell脚本中也经常会用到与日期相关文件名或时间显示。无论是linux还是windows下都是date命令。

Linux下date命令用法

  • date [OPTION]… [+FORMAT]
  • date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

date命令参数

  • -d, –date=STRING  显示STRING指定的时间
  • -f, –file=DATEFILE  类似–date参数显示DATEFILE文件中的每行时间
  • -ITIMESPEC, –iso-8601[=TIMESPEC]  以ISO  8601 格式显示日期/时间。TIMESPEC为”date”(只显示日期)、”hours”、”minutes”、”senconds”(显示时间精度)之一,默认为”date”。
  • -r, –reference=FILE  显示文件的最后修改时间
  • -R, –rfc-2822  以RFC-2822兼容日期格式显示时间
  • -s, –set=STRING  设置时间为STRING
  • -u, –utc, –universal  显示或设定为Coordinated Universal Time时间格式

date命令输出显示格式

  • %%    字符%
  • %a     星期的缩写(Sun..Sat)
  • %A    星期的完整名称 (Sunday..Saturday)
  • %b     月份的缩写(Jan..Dec)
  • %B     月份的完整名称(January..December)
  • %c     日期时间(Sat Nov 04 12:02:33 EST 1989)
  • %C     世纪(年份除100后去整) [00-99]
  • %d     一个月的第几天(01..31)
  • %D     日期(mm/dd/yy)
  • %e     一个月的第几天 ( 1..31)
  • %F    日期,同%Y-%m-%d
  • %g     年份(yy)
  • %G     年份(yyyy)
  • %h     同%b
  • %H    小时(00..23)
  • %I     小时(01..12)
  • %j     一年的第几天(001..366)
  • %k     小时( 0..23)
  • %l      小时( 1..12)
  • %m    月份(01..12)
  • %M    分钟(00..59)
  • %n     换行
  • %N     纳秒(000000000..999999999)
  • %p     AM or PM
  • %P     am or pm
  • %r     12小时制时间(hh:mm:ss [AP]M)
  • %R    24小时制时间(hh:mm)
  • %s     从00:00:00 1970-01-01 UTC开始的秒数
  • %S     秒(00..60)
  • %t     制表符
  • %T    24小时制时间(hh:mm:ss)
  • %u     一周的第几天(1..7);  1 表示星期一
  • %U     一年的第几周,周日为每周的第一天(00..53)
  • %V     一年的第几周,周一为每周的第一天 (01..53)
  • %w     一周的第几天 (0..6);  0 代表周日
  • %W    一年的第几周,周一为每周的第一天(00..53)
  • %x     日期(mm/dd/yy)
  • %X     时间(%H:%M:%S)
  • %y     年份(00..99)
  • %Y     年份 (1970…)
  • %z     RFC-2822 风格数字格式时区(-0500)
  • %Z     时区(e.g., EDT), 无法确定时区则为空

以下是做的一些实验,便于理解

010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748

$ date -d "2010-11-15 23:00:01"Mon Nov 15 23:00:01 PST 2010$ date -d "2010/11/15 23:0:2"Mon Nov 15 23:00:02 PST 2010$ date -d "2010/11/15T23:0:2"Mon Nov 15 08:00:02 PST 2010$$ echo "2010-11-15 23:00:01" > date.txt$ echo "2010/11/15 23:00:02" >> date.txt$ cat date.txt2010-11-15 23:00:012010/11/15 23:00:02$ date -f date.txtMon Nov 15 23:00:01 PST 2010Mon Nov 15 23:00:02 PST 2010$$ ls -ltotal 4-rw-r--r-- 1 znan sybase    40 Nov 15 21:14 date.txt$ date -r date.txtMon Nov 15 21:14:36 PST 2010$$ date -I2010-11-15$ date -Ihours2010-11-15T21-0800$ date -Iminutes2010-11-15T21:16-0800$ date -Iseconds2010-11-15T21:16:24-0800$$ date -RMon, 15 Nov 2010 21:47:08 -0800$ date -uTue Nov 16 05:47:13 UTC 2010$$ date +"Today is %A."Today is Monday.$ date +"Date:%b. %e, %G"Date:Nov. 15, 2010$ date +"Date: %b.%e, %G"Date: Nov.15, 2010$ date +"%x %X"11/15/2010 09:50:21 PM$ date +"%Y-%m-%d %H:%M:%S"2010-11-15 21:51:32$ date +"%Y-%m-%d %I:%M:%S %p"2010-11-15 09:51:55 PM

------------------------------------

Linux date 常用时间格式

date=$(date "+%Y-%m-%d___%H:%M:%S")

echo date

2012-08-16___05:52:20

date "+%Y-%m-%d"

2012-08-16

------------------------------------

Linux date 日期加减运算

date            // 默认时间格式

Thu Aug 16 05:42:38 UTC 2012

date +"%b %e, %G"            // 定制格式

Aug 16, 2012

date +"%b %e, %G" -d'-1 day'        date -d'-1 day' +"%b %e, %G"    // 减一天(加一天类似)

Aug 15, 2012

date +"%b %e, %G" -d'+1 month'   date -d'+1 month' +"%b %e, %G"      // 加一月(减一月类似)

Sep 16, 2012

date +"%Y年%m月%d日"

2012年08月20日

date +"%Y年%m月%d日" -d'-1 day'    // 同上面加减1天(或加减1月)

2012年08月19日

date +"%Y年%-m月%d日"     // %-m 去除月份对其的零

2012年8月20日

------------------------------------

Ubuntu 修改系统时间

sudo date -s MM/DD/YY

sudo date -s hh:mm:ss

注意,这里说的是系统时间,是linux由操作系统维护的。 在系统启动时,Linux操作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现。为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS。由于该同步是每隔一段时间(大约是11分钟)进行的,在我们执行date -s后,如果马上重起机器,修改时间就有可能没有被写入CMOS,这就是问题的原因。

如果要确保修改的硬件时间生效,可以执行如下命令。 sudo dwclock -w 或 sudo clock -w(ubuntu下有时候无法用clock -w 没有这个命令 如果没有就 使用这个hwclock -w) 这个命令强制把系统时间写入CMOS。

查看硬件时间

 sudo hwclock --show

$ sudo hwclock --show Thursday, August 16, 2012 PM04:46:32 UTC  -0.664019 seconds

核心提示:让VMware虚拟机上的ubuntu10.10时间与网络同步

 每次启动虚拟机后,ubuntu10.10的时间都不合适,发现需要这样设置:

系统–>系统管理–>时间和日期 时区选择:Asia/Chongqing 配置选择:与互联网服务器保持同步(这时提示需要安装名称为ntp的软件,安装即可,安装后提示要替换一个文件,选择“替换“) 时间服务器选择:time.nuri.net(Korea,Asia)

查看文件命令:ls -l 和 ls -l --time-style=long-iso 

参考推荐:

date命令用法详解(日期格式)

Java Date 和 Calendar

C#日期格式参考小结

如何修改Ubuntu Linux的时间

CentOS 6 时间,时区,设置修改及时间同步

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2012年08月16日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
linux基本命令及使用方法
shell:命令解释器,是Linux 系统的用户界面,提供了用户与内核进行交互操作的一种接口,它接收用户输入的命令并把它送入内核去执行。
yuezhimi
2020/09/30
1.1K0
[1031]shell获取昨天、明天或多天前的日期
说明 : date 能用来显示或设定系统的日期和时间,在显示方面,使用者能设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下 :
周小董
2021/07/27
3.9K0
每天学一个 Linux 命令(50):date
昨日推荐:每天学一个 Linux 命令(49):free 命令简介 date 命令用于显示与设置系统时间。 语法格式 date [OPTION] [MMDDhhmm[[CC]YY][.ss]] 选项说明 -d<字符串> #显示字符串所指的日期与时间。字符串前后必须加上双引号 -s<字符串> #根据字符串来设置日期与时间。字符串前后必须加上双引号 -u #显示GMT --help #打印在线帮助信息 --version #打印版本信息 时间字符串列表 FORMAT controls th
民工哥
2021/03/15
1.9K0
【linux命令讲解大全】153.利用date命令管理系统时间和日期
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
全栈若城
2024/03/02
3790
AngularJS入门教程:日期格式化
AngularJS入门教程:日期格式化【转载】 本地化日期格式化: ({{ today | date:'medium' }})Nov 24, 2015 2:19:24 PM ({{ today | date:'short' }})11/24/15 2:19 PM ({{ today | date:'fullDate' }})Tuesday, November 24, 2015 ({{ today | date:'longDate' }})November 24, 2015 ({{ today | date:
用户3055976
2018/09/12
5250
Linux命令(50)——date命令
date命令用于按照指定格式显示当前时间或者指定的时间,也可以设置系统时间。很多Shell脚本里面需要打印不同格式的时间或日期,以及要根据时间和日期执行操作,此时可以使用date命令来完成。在类Unix系统中,日期被存储为一个整数,其大小为协调世界时(UTC)1970年1月1日0时0分0秒起流逝的秒数,即Unix时间戳。
恋喵大鲤鱼
2018/12/24
3.6K0
Linux 常用系统工作命令-date
突发一个兴趣,整理 Linux 常用命令。每天记忆一两个就好,详情查看 知识星球 https://t.zsxq.com/Mja2Fe2
hedeqiang
2020/07/22
3.5K0
Shell date 命令详解
以给定的格式显示当前时间。 %% 一个文字的 % %a 当前locale 的星期名缩写(例如: 日,代表星期日) %A 当前locale 的星期名全称 (如:星期日) %b 当前locale 的月名缩写 (如:一,代表一月) %B 当前locale 的月名全称 (如:一月) %c 当前locale 的日期和时间 (如:2005年3月3日 星期四 23:05:25) %C 世纪;比如 %Y,通常为省略当前年份的后两位数字(例如:20) %d 按月计的日期(例如:
康怀帅
2018/02/28
1.5K0
c++如何获取系统当前时间(超级详细)
获取系统当前日历时间 UTC 1970-01-01 00:00:00开始的unix时间戳
风骨散人Chiam
2020/10/28
13.5K2
玩转 SHELL 脚本之:linux date 知多少?
最近好久没 update 了,一来是近期有点烦人的私事需要处理,二来是工作有点忙,业余时间还要整个 PPT,搜集素材啥的,非常耗时间。。。好吧,这都是借口,其实是人变懒了。。。⊙﹏⊙ 不过我发现最近 1 个月以来,我关注的一些 Blog,一半以上也都没更新了,看来对大家来说年底都是多事之秋呀~ 好了,言归正传,之前有介绍过《linux 系统监控、诊断工具之 top 详解》、《linux 系统监控、诊断工具之 lsof 用法简介》,今天再来介绍一个使用频率很高的 linux 命令:date 对日期进行操作,相
用户1177713
2018/02/24
2.3K0
玩转 SHELL 脚本之:linux date 知多少?
C++获取当前系统时间并格式化输出
C++中与系统时间相关的函数定义在头文件中。 一、time(time_t * )函数 函数定义如下:
风骨散人Chiam
2020/10/29
8.3K0
Linux应用开发【第十章】RTC应用开发
​ “RTC”的英文全称是Real-Time Clock,翻译过来是实时时钟芯片。实时时钟芯片是日常生活中应用最为广泛的电子器件之一,它为人们或者电子系统提供精确的实时时间。实时时钟芯片通过引脚对外提供时间读写接口,通常内部带有电池,保证在外部系统关电时,内部电路正常工作,时间正常运行。不同的时钟芯片内部机制不一样,时间数据存储格式、读写操作方式也不一样,Linux系统和驱动封装了不同时钟芯片的操作细节,为应用程序提供了统一的时间操作接口。
韦东山
2021/12/15
2.2K0
linux date -d 的一些使用方法[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/116005.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/08
1.2K0
R语言 日期、时间和lubridate包
当导入数据时日期值通常以字符串的形式输入到R中,这时需要转化为以数值形式存储的日期变量。用as.Date()把文本转换为Date类型:其语法为as.Date(x,"input_format"),其中x是字符型数据,#input_format则给出了用于读入日期的适当格式
拴小林
2020/11/11
5.9K0
python下的日期与时间(时间格式转换、时间戳处理,时间差处理)
时间戳单位最适于做日期运算。但是1970年之前的日期就无法以此表示了。太遥远的日期也不行,UNIX和Windows只支持到2038年。
学到老
2019/01/25
14.1K0
Python标准库笔记(3) — datetime模块
目录[-] datetime模块提供了简单和复杂的方式用于操纵日期和时间的类。虽然支持日期和时间运算,但实现的重点是为了输出格式化和操作高效地提取属性。 1. 模块内容 内容 描述 常量 datetime.MINYEAR date和datetime对象允许的最小年份 datetime.MAXYEAR date和datetime对象允许的最大年份 类 datetime.date 日期对象,属性(year, month, day) datetime.time 时间
jhao104
2018/03/20
1.3K0
13.linux 文件管理命令:echo显示文本-date显示日期和时间
(1)echo显示字符串。 普通字符串可以在echo 后直接输入字符串,但这样当要输出某些字符(如“\”)时会有问 题(这种写法下,“\”是被当作继行符处理过滤掉的,要输出一个“\”必须输入“\”,跟 C 语 言中 printf 输出的要求相像),所以最好用'string'或"string",这样即使是“\”也可以输出,方便直观。
度假的小鱼
2025/01/04
1810
13.linux 文件管理命令:echo显示文本-date显示日期和时间
python常用内建模块之time、date、datetime
Python的time和datetime模块提供了时间日期工具, python中的时间有4种表示方式:
菲宇
2019/06/13
2.3K0
又肝了3天,整理了80个Python DateTime 例子,必须收藏!
日常工作中,用 Python 处理时间格式的数据是非常常见的,今天就来分享 DateTime 相关的示例
周萝卜
2021/10/25
9K0
Linux下date命令常用方法小计
在Linux下date命令是由coreutils安装出来的一个系统命令,用来显示当前系统时间,不过默认显示结果可能不是你想想要的,特别是结果作为文件名输出不是很合适,这时候就可以利用好date命令格式化选项了。
后场技术
2020/09/03
10.1K0
相关推荐
linux基本命令及使用方法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档