date命令解析_学习笔记

简介: 时间:2017.11.14作者:李强参考:man,info,magedu讲义声明:以下英文纯属个人翻译,英文B级,欢迎纠正,盗版不纠,才能有限,希望不误人子弟为好。1、使用目的与场景  打印或者修改系统日期时间system time。

时间:2017.11.14

作者:李强

参考:man,info,magedu讲义

声明:以下英文纯属个人翻译,英文B级,欢迎纠正,盗版不纠,才能有限,希望不误人子弟为好。

1、使用目的与场景

  打印或者修改系统日期时间system time。

2、官方说明

  Display or manipulate the history list.

3、写在前面

  首先这里有两个概念System time 和 Hardware Clock。date最重要的就是对时间格式的理解,毕竟这里不是在shell不是在X windows下,不能点点鼠标就行。时间管理以后就使用ntp统一管理。等我学习后我会来这里再补充。

4、修改文件及涉及的环境变量

       /etc/localtime

      /usr/share/zoneinfo/*

      TZ

5、用法

Usage:

date [OPTION]... [+FORMAT]

date [-u|--utc|--universal] [ MMDDhhmm[[CC]YY][.ss] ]

直接执行显示当前system time

默认显示格式是 '+%a %b %e %H:%M:%S %Z %Y' 就是'Mon Nov 13 17:59:49 CST 2017'这样子的格式。

 -d, --date=STRING 显示时间描述的字符串,但不是now这种。有具体格式下面会说     

 -f, --file=DATEFILE 从datefile文件中的每一行去显示date,像--date 每次从文件取一行

 -r, --reference=FILE 显示文件最后一次的修改时间

 -R, --rfc-2822 输出时间以RFC 2822格式.  Example: Mon, 07 Aug 2006 12:34:56 -0600

 --rfc-3339=TIMESPEC 输出时间以RFC 3339格式.时间和日期之间用空格隔开,

  TIMESPEC=‘date’, ‘seconds’, or ‘ns’ : 2006-08-07 12:34:56-06:00           

 -s, --set=STRING  用字符串单词的方式来设置时间和-d的格式一样

 -u, --utc, --universal 打印和设置UTC时间

  我们来说下-d 和-s中的STRING的格式,因为太多,自己可以参考下info信息:

* General date syntax::             Common rules.

* Calendar date items::             19 Dec 1994.

* Time of day items::               9:20pm.

* Time zone items::                EST, PDT, GMT.

* Day of week items::               Monday and others.

* Relative items in date strings::     next tuesday, 2 years ago.

* Pure numbers in date strings::       19931219, 1440.

* Seconds since the Epoch::          @1078100502.

* Specifying time zone rules::        TZ="America/New_York", TZ="UTC0".

* Authors of get_date::             Bellovin, Eggert, Salz, Berets, et al.

ps .因为second代表的是s的单位,因此最好用数字表示表较好,+-表示往前往后,

比如:+2day -1day 这里的day可以替换为year month day  hour minute second  am pm 

 数字前不加+,-  对于monday-sunday January-December 大小写,简写都可以。

this 表示0 last表示-1,first,next表示1,因为second是单位因此就是2表示2,数字可以往后排,last和next还是挺直观,其他我觉得阿拉伯数字还是挺直观的。this 和first在当天时间都是saturday和sunday的时候使用都有问题。都是和next一个意思。这里有待进一步考证。


date -d '+2day +1month' +%F/%T 时间往后,一个月2天后的时间。

date -d '+2hour +1minute +5second' 时间往后,设置为当前时间加上2小时1分钟5秒。

date -d 'TZ="CET|Europe/Paris"'时区还是挺复杂的,还是用tzselect来查看和设置,

这里有一点要注意的是,比如今天是星期天sunday,那么我想看下这个星期一的时间

因为我们一直在用date操作,因此我们可以用clock -s 来帮助我们快速回复我们修改的时间和硬件时间对齐。

关于时间同步的问题我们后面会学习ntp。

centos7中用timedatectl ,个人感觉7上的ctl功能还是不错的,各个都是模块化设置。集成一点比单一各有千秋吧。

   控制输出的格式如下,常用就2个,其他就是查帮助吧:

       %%     a literal %

       %a     locale’s abbreviated weekday name (e.g., Sun)

       %A     locale’s full weekday name (e.g., Sunday)

       %b     locale’s abbreviated month name (e.g., Jan)

       %B     locale’s full month name (e.g., January)

       %c     locale’s date and time (e.g., Thu Mar  3 23:05:25 2005)

       %C     century; like %Y, except omit last two digits (e.g., 20)

       %d     day of month (e.g, 01)

       %D     date; same as %m/%d/%y

       %e     day of month, space padded; same as %_d

       %F     full date; same as %Y-%m-%d

       %g     last two digits of year of ISO week number (see %G)

       %G     year of ISO week number (see %V); normally useful only with %V

       %h     same as %b

       %H     hour (00..23)

      %I     hour (01..12)

       %j     day of year (001..366)

       %k     hour ( 0..23)

       %l     hour ( 1..12)

       %m     month (01..12)

       %M     minute (00..59)

       %n     a newline

       %N     nanoseconds (000000000..999999999)

       %p     locale’s equivalent of either AM or PM; blank if not known

       %P     like %p, but lower case

       %r     locale’s 12-hour clock time (e.g., 11:11:04 PM)

       %R     24-hour hour and minute; same as %H:%M

       %s     seconds since 1970-01-01 00:00:00 UTC

       %S     second (00..60)

      %t     a tab

       %T     time; same as %H:%M:%S

       %u     day of week (1..7); 1 is Monday

       %U     week number of year, with Sunday as first day of week (00..53)

       %V     ISO week number, with Monday as first day of week (01..53)

       %w     day of week (0..6); 0 is Sunday

       %W     week number of year, with Monday as first day of week (00..53)

       %x     locale’s date representation (e.g., 12/31/99)

       %X     locale’s time representation (e.g., 23:13:48)

       %y     last two digits of year (00..99)

       %Y     year

       %z     +hhmm numeric timezone (e.g., -0400)

       %:z    +hh:mm numeric timezone (e.g., -04:00)

       %::z   +hh:mm:ss numeric time zone (e.g., -04:00:00)


      %:z    +hh:mm numeric timezone (e.g., -04:00)

       %::z   +hh:mm:ss numeric time zone (e.g., -04:00:00)

       %:::z  numeric time zone with : to necessary precision (e.g., -04, +05:30)

       %Z     alphabetic time zone abbreviation (e.g., EDT)


       默认情况下,日期用0填充数字字段,下面的可以跟在‘%’后面:


       -      (hyphen)连字符,跟在%号后,就不会去填充0了

       _      (underscore)下划线,跟在%号后加了个空格

       0      (zero) 0

       ^      upper 大写字母,跟在%号后,变成大写的格式显示了

       #      opposite相反的格式,变成相反的格式显示了




             



 

相关文章
|
JavaScript
vue element plus Color 色彩
vue element plus Color 色彩
481 0
|
Linux Shell 调度
Linux进程概念(中)
本文详细解析了Linux进程的不同状态,包括运行、阻塞、挂起,以及僵尸和孤儿进程的概念。讨论了进程优先级的重要性,以及操作系统如何通过活动队列、过期队列和优先级管理进程调度。
202 0
|
Java Windows
Java 打开文件的两种方式
import java.awt.Desktop; import java.io.File; import java.io.IOException; public class LnkDemo { public static void main(String[] arg...
1187 0
|
存储 关系型数据库 MySQL
【MySQL】快速了解MySQL基础
【MySQL】快速了解MySQL基础
|
Android开发
Android平台设计规范整理(尺寸+组成元素+字体+滑块)
转自:http://www.ui.cn/project.php?id=12394
814 0
|
3天前
|
人工智能 自然语言处理 JavaScript
2026年Windows+Ollama本地部署OpenClaw保姆级教程:本地AI Agent+阿里云上快速搭建
2026年OpenClaw凭借本地部署、私有化运行的特性,成为打造个人智能体的核心工具,而Ollama作为轻量级本地大模型管理工具,能让OpenClaw摆脱对云端大模型的依赖,实现**本地推理、数据不泄露、全流程私有化**的智能体验。本文基于Windows 11系统,从硬件环境准备、Ollama安装与模型定制、OpenClaw部署配置、技能扩展到常见问题排查,打造保姆级本地部署教程,同时补充阿里云OpenClaw(Clawdbot)快速部署步骤,兼顾本地私有化需求与云端7×24小时运行需求,文中所有代码命令均可直接复制执行,确保零基础用户也能快速搭建属于自己的本地智能体。
5532 31
|
4天前
|
人工智能 JSON JavaScript
手把手教你用 OpenClaw + 飞书,打造专属 AI 机器人
手把手教你用 OpenClaw(v2026.2.22-2)+ 飞书,10分钟零代码搭建专属AI机器人!内置飞书插件,无需额外安装;支持Claude等主流模型,命令行一键配置。告别复杂开发,像聊同事一样自然对话。
2311 7
手把手教你用 OpenClaw + 飞书,打造专属 AI 机器人
|
10天前
|
存储 人工智能 负载均衡
阿里云OpenClaw多Agent实战宝典:从极速部署到AI团队搭建,一个人=一支高效军团
在AI自动化时代,单一Agent的“全能模式”早已无法满足复杂任务需求——记忆臃肿导致响应迟缓、上下文污染引发逻辑冲突、无关信息加载造成Token浪费,这些痛点让OpenClaw的潜力大打折扣。而多Agent架构的出现,彻底改变了这一现状:通过“单Gateway+多分身”模式,让一个Bot在不同场景下切换独立“大脑”,如同组建一支分工明确的AI团队,实现创意、写作、编码、数据分析等任务的高效协同。
4405 29
|
2天前
|
人工智能 自然语言处理 机器人
保姆级教程:Mac本地搭建OpenClaw及阿里云上1分钟部署OpenClaw+飞书集成实战指南
OpenClaw(曾用名Clawdbot、Moltbot)作为2026年最热门的开源个人AI助手平台,以“自然语言驱动自动化”为核心,支持对接飞书、Telegram等主流通讯工具,可替代人工完成文件操作、日历管理、邮件处理等重复性工作。其模块化架构适配多系统环境,既可以在Mac上本地化部署打造私人助手,也能通过阿里云实现7×24小时稳定运行,完美兼顾隐私性与便捷性。
1503 2

热门文章

最新文章