Linux shell编程学习笔记56:date命令——显示或设置系统时间与日期
0 前言
2024年的网络安全检查又开始了,对于使用基于Linux的国产电脑,我们可以编写一个脚本来收集系统的有关信息。在收集的信息中,应该有一条是搜索信息的时间。
1. date命令 的功能、格式和选项说明
我们可以使用命令 date --help 来查看 date命令的帮助信息。
[purpleendurer @ bash ~ ]date --help
Usage: date [OPTION]... [+FORMAT]or: date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Display the current time in the given FORMAT, or set the system date.Mandatory arguments to long options are mandatory for short options too.-d, --date=STRING display time described by STRING, not 'now'-f, --file=DATEFILE like --date once for each line of DATEFILE-I[TIMESPEC], --iso-8601[=TIMESPEC] output date/time in ISO 8601 format.TIMESPEC='date' for date only (the default),'hours', 'minutes', 'seconds', or 'ns' for dateand time to the indicated precision.-r, --reference=FILE display the last modification time of FILE-R, --rfc-2822 output date and time in RFC 2822 format.Example: Mon, 07 Aug 2006 12:34:56 -0600--rfc-3339=TIMESPEC output date and time in RFC 3339 format.TIMESPEC='date', 'seconds', or 'ns' fordate and time to the indicated precision.Date and time components are separated bya single space: 2006-08-07 12:34:56-06:00-s, --set=STRING set time described by STRING-u, --utc, --universal print or set Coordinated Universal Time (UTC)--help display this help and exit--version output version information and exitFORMAT controls the output. Interpreted sequences are:%% 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, space padded ( 0..23); same as %_H%l hour, space padded ( 1..12); same as %_I%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 time zone (e.g., -0400)%:z +hh:mm numeric time zone (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)By default, date pads numeric fields with zeroes.
The following optional flags may follow '%':- (hyphen) do not pad the field_ (underscore) pad with spaces0 (zero) pad with zeros^ use upper case if possible# use opposite case if possibleAfter any flags comes an optional field width, as a decimal number;
then an optional modifier, which is either
E to use the locale's alternate representations if available, or
O to use the locale's alternate numeric symbols if available.Examples:
Convert seconds since the epoch (1970-01-01 UTC) to a date$ date --date='@2147483647'Show the time on the west coast of the US (use tzselect(1) to find TZ)$ TZ='America/Los_Angeles' dateShow the local time for 9AM next Friday on the west coast of the US$ date --date='TZ="America/Los_Angeles" 09:00 next Fri'GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
Report date translation bugs to <http://translationproject.org/team/>
For complete documentation, run: info coreutils 'date invocation'
[purpleendurer @ bash ~ ]
1.1 date 命令的功能
显示或设置系统时间与日期。
转换时间到选定的格式,默认为当前。
1.2 date 命令的格式
date [OPTION]... [+FORMAT]
或
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
1.3 FORMAT可用的转义序列
转义序列 | 含义 |
---|---|
%% | 百分号 |
%a | 当地缩写的工作日名称(例如,Sun) |
%A | 当地完整的工作日名称(例如,Sunday) |
%b | 当地缩写的月份名称(例如,Jan) |
%B | 当地完整的月份名称(例如,January) |
%c | 当地的日期和时间(例如,Thu Mar 3 23:05:25 2005) |
%C | 世纪,和%Y类似,但是省略后两位(例如,20) |
%d | 一月中的一天(例如,01) |
%D | 日期,等价于%m/%d/%y |
%e | 一月中的一天,格式使用空格填充,等价于%_d |
%F | 完整的日期;等价于%+4Y-%m-%d |
%g | ISO标准计数周的年份的最后两位数字 |
%G | ISO标准计数周的年份,通常只对%V有用 |
%h | 等价于%b |
%H | 小时,范围(00..23) |
%I | 小时,范围(01..12) |
%j | 一年中的一天,范围(001..366) |
%k | 小时,使用空格填充,范围(0..23),等价于%_H |
%l | 小时,使用空格填充,范围(1..12),等价于%_I |
%m | 月,范围(01..12) |
%M | 分钟,范围(00..59) |
%n | 换行符 |
%N | 纳秒,范围(000000000..000000000) |
%p | 用于表示当地的AM或PM,如果未知则为空白 |
%P | 类似于%p,但用小写表示 |
%q | 季度,范围(1..4) |
%r | 当地以12小时表示的时钟时间(例如,11:11:04 PM) |
%R | 24小时每分钟;等价于%H:%M |
%s | 自协调世界时1970年01月01日00时00分以来的秒数 |
%S | 秒数,范围(00..60) |
%t | 水平制表符 |
%T | 时间;等价于%H:%M:%S |
%u | 一周中的一天(1..7),1代表星期一 |
%U | 一年中的第几周,周日作为一周的起始(00..53) |
%V | ISO标准计数周,该方法将周一作为一周的起始(01..53) |
%w | 一周中的一天(0..6),0代表星期天 |
%W | 一年中的第几周,周一作为一周的起始(00..53) |
%x | 当地的日期表示(例如,12/31/99) |
%X | 当地的时间表示(例如,23:13:48) |
%y | 年份后两位数字,范围(00..99) |
%Y | 年份 |
%z | +hhmm格式的数值化时区格式(例如,-0400) |
%:z | +hh:mm格式的数值化时区格式(例如,-04:00) |
%::z | +hh:mm:ss格式的数值化时区格式(例如,-04:00:00) |
%:::z | 数值化时区格式,相比上一个格式增加':'以显示必要的精度(例如,-04,+05:30) |
%Z | 时区缩写(如EDT) |
1.4 date 命令的选项说明
选项 | 说明 |
---|---|
-d STRING --date=STRING --date STRING | 解析字符串并按照指定格式输出,字符串不能是'now'。 |
-f DATEFILE --file=DATEFILE | 类似于--date; 一次从DATEFILE处理一行。 |
-I[FMT], --iso-8601[=FMT] | 按照ISO 8601格式输出 FMT可以为'date'(默认),'hours','minutes','seconds','ns'。 例如:2006-08-14T02:34:56-06:00 |
-R --rfc-email | 按照RFC 5322格式输出, 例如: Mon, 14 Aug 2006 02:34:56 -0600 |
--rfc-3339=FMT | 按照RFC 3339格式输出,FMT可以为'date', 'seconds','ns'中的一个,例如:2006-08-14 02:34:56-06:00 |
-r, --reference=FILE | 显示文件的上次修改时间。 |
-s --set=STRING | 根据字符串设置系统时间。 |
-u --utc --universal | 显示或设置世界协调时(UTC)。 |
--help | 显示帮助信息并退出。 |
--version | 显示版本信息并退出。 |
2 date命令实例
2.1 date : 显示当前系统日期和时间
[purpleendurer @ bash ~ ]date
2024年 06月 02日 星期日 17:18:03 CST
[purpleendurer @ bash ~ ]
2.2 date +格式化字符串:格式化输出
[purpleendurer @ bash ~ ]date
2024年 06月 02日 星期日 17:53:04 CST
[purpleendurer @ bash ~ ]date +"%Y-%m-%d %l:%M:%S %A"
2024-06-02 5:53:05 星期日
[purpleendurer @ bash ~ ]
2.3 date -d 字符串 或 date --date=字符串 或 date --date 字符串:解析字符串并按照指定格式输出
[purpleendurer @ bash ~ ]date -d="2000-01-01"
date: invalid date ‘=2000-01-01’
[purpleendurer @ bash ~ ]date -d="20000101"
date: invalid date ‘=20000101’
[purpleendurer @ bash ~ ]date -d "20000101"
2000年 01月 01日 星期六 00:00:00 CST
[purpleendurer @ bash ~ ]date -d "2000-01-01"
2000年 01月 01日 星期六 00:00:00 CST
[purpleendurer @ bash ~ ]date --date="2000-01-01"
2000年 01月 01日 星期六 00:00:00 CST
[purpleendurer @ bash ~ ]date --date "2000-01-01"
2000年 01月 01日 星期六 00:00:00 CST
[purpleendurer @ bash ~ ]
2.4 date -I :按照ISO 8601格式输出
[purpleendurer @ bash ~ ]date
2024年 06月 02日 星期日 18:16:22 CST
[purpleendurer @ bash ~ ]date -I
2024-06-02
[purpleendurer @ bash ~ ]
2.5 date -d "3 day ago" :输出3天前的日期
[purpleendurer @ bash ~ ]date -d "3 day ago" +"%c" # 输出3天前的日期
2024年05月30日 星期四 18时15分13秒
[purpleendurer @ bash ~ ]
2.6 date -d "3 month ago" -R :按照RFC 5322格式输出3个月前的日期
[purpleendurer @ bash ~ ]date
2024年 06月 02日 星期日 18:14:08 CST
[purpleendurer @ bash ~ ]date -d "3 month ago" -R # 按照RFC 5322格式输出3个月前的日期
Sat, 02 Mar 2024 18:14:21 +0800
[purpleendurer @ bash ~ ]
2.7 date -d 字符串:解析字符串并输出
purpleendurer @ bash ~ ]date -d "19880907" +"%c" # 解析字符串"19880907"按照当地格式输出
1988年09月07日 星期三 00时00分00秒
[purpleendurer @ bash ~ ]
2.8 显示两年后的日期
[purpleendurer @ bash ~ ]date
2024年 06月 02日 星期日 18:26:35 CST
[purpleendurer @ bash ~ ]date -d "+2 year" +%Y-%m-%d # 显示两年后的日期
2026-06-02
[purpleendurer @ bash ~ ]
2.9 生成日志的时间
[purpleendurer @ bash ~ ]date +"日志生成时间:%c"
日志生成时间:2024年06月02日 星期日 18时30分01秒
[purpleendurer @ bash ~ ]
相关文章:

Linux shell编程学习笔记56:date命令——显示或设置系统时间与日期
0 前言 2024年的网络安全检查又开始了,对于使用基于Linux的国产电脑,我们可以编写一个脚本来收集系统的有关信息。在收集的信息中,应该有一条是搜索信息的时间。 1. date命令 的功能、格式和选项说明 我们可以使用命令 date --help 来查看 d…...

Realsense的一些事情
Realsense的一些事情 librealsense的安装 官网教程: apt 安装教程: https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md自行clone并编译教程: https://github.com/IntelRealSense/librealsense/blo…...

CISCN 2023 初赛 被加密的生产流量
题目附件给了 modbus.pcap 存在多个协议 但是这道题多半是 考 modbus 会发现 每次的 Query 末尾的两个字符 存在规律 猜测是base家族 可以尝试提取流量中的数据 其中Word Count字段中的22871 是10进制转16进制在转ascii字符串 先提取 过滤器判断字段 tshark -r modbus.pcap …...

初识C语言第三十天——设计三子棋游戏
目录 一.设计游戏框架 1.打印游戏菜单 2.输入选择判断(玩游戏/游戏结束/输入错误重新输入) 二、玩游戏过程设计 1.设计棋格存放棋子——二维数组 2.初始化棋盘——初始化为空格 3.打印棋盘——本质上就是打印数组 4.游戏过程——1.玩家走棋 2.…...

ehcache3多级缓存应用
项目中如果有使用大量的本地缓存场景,可以使用redisehcache组合缓存,优先使用ehcache本地缓存,本地缓存没有查询到再使用redis缓存 可看前文中如何集成 本地缓存使用存在的问题 1、本地缓存如何保证缓存的是最新值 可定义版本号、自增id或者…...

C# WinForm —— 24 Threading.Timer 组件介绍与使用
1. 简介 System.Threading.Timer 多线程 轻量级 精度高 提供以指定的时间间隔对线程池线程执行方法的机制 和System.Timers.Timer 类似,每隔一段时间触发事件,执行操作(不是由UI线程执行的),即使事件中执行了比较耗时的操作,也…...

03-07Java自动化之JAVA基础之循环
JAVA基础之循环 一、for循环 1.1for循环的含义 for(初始化语句;条件判断;条件控制或–){ //代码语句 } 1、首先执行初始话语句,给变量一个起始的值 2、条件判断进行判断,为true,执行循环体中的代码语句 …...

【人工智能Ⅱ】实验8:生成对抗网络
实验8:生成对抗网络 一:实验目的 1:理解生成对抗网络的基本原理。 2:学会构建改进的生成对抗网络,如DCGAN、WGAN、WGAN-GP等。 3:学习在更为真实的数据集上应用生成对抗网络的方法。 二:实验…...

vmware将物理机|虚拟机转化为vmware虚机
有时,我们需要从不同的云平台迁移虚拟机、上下云、或者需要将不再受支持的老旧的物理服务器转化为虚拟机,这时,我们可以用一款虚拟机转化工具:vmware vcenter converter standalone,我用的是6.6的版本,当然…...

redis 高可用及哨兵模式 @by_TWJ
目录 1. 高可用2. redis 哨兵模式3. 图文的方式让我们读懂这几个算法3.1. Raft算法 - 图文3.2. Paxos算法 - 图文3.3. 区别: 1. 高可用 在 Redis 中,实现 高可用 的技术主要包括 持久化、复制、哨兵 和 集群,下面简单说明它们的作用…...

封装tab栏,tab切换可刷新页面
dom结构 <template><div class"container"><!-- tab栏 --><div class"border-b"><tabs:tabsList"tabsList":selectTabsIndex"selectTabsIndex"tabsEven"tabsEven"></tabs></div>…...

JavaScript第八讲:日期,Math,自定义对象
目录 前言 日期 1. 创建日期对象 2. 年/月/日 3. 时:分:秒:毫秒 4. 一周的第几天 5. 经历的毫秒数 6. 修改日期和时间 Math 1. 自然对数和圆周率 2. 绝对值 3. 最小最大 4. 求幂 5. 四舍五入 6. 随机数 自定义对象 1. 通过 new Object 创建对象 2. 通过 funct…...

php质量工具系列之phploc
phploc是一个快速测量PHP项目大小的工具 结果支持raw csv xml json格式,可输出文件或者打印到控制台 安装 PHAR方式 wget https://phar.phpunit.de/phploc.pharphp phploc.phar -vComposer方式(推荐) composer global require --dev phploc/phplocphploc -v使用 …...

创建模拟器
修改模拟器默认路径 由于模拟器文件比较大,默认路径在C:\Users\用户名.android\avd,可修改默认路径 创建修改后的路径文件 D:\A-software\Android\AVD添加系统变量ANDROID_SDK_HOME:D:\A-software\Android\AVD重启Android Studio 创建模拟…...

【Java】接口详解
接口是抽象类的更进一步. 抽象类中还可以包含非抽象方法, 和字段. 而接口中包含的方法都是抽象方法, 字段只能包含静态常量。 一个简单的接口代码示例 interface IShape { void draw(); } class Cycle implements IShape { Override public void draw() { System.out.println…...

去掉el-table表头右侧类名是gutter,width=17px的空白区域(包括表头样式及表格奇偶行样式和表格自动滚动)
代码如下: <el-table:data"tableData"ref"scroll_Table":header-cell-style"getRowClass":cell-style"styleBack"height"350px"style"width: 100%"><el-table-column prop"id" l…...

3079. 求出加密整数的和
给你一个整数数组 nums ,数组中的元素都是 正 整数。定义一个加密函数 encrypt ,encrypt(x) 将一个整数 x 中 每一个 数位都用 x 中的 最大 数位替换。比方说 encrypt(523) 555 且 encrypt(213) 333 。 请你返回数组中所有元素加密后的 和 。 示例 1&…...

奶茶店、女装店、餐饮店是高危创业方向,原因如下:
关注卢松松,会经常给你分享一些我的经验和观点。 现在的俊男靓女们,心中都有一个执念: (1)想证明自己了,开个奶茶去…… (2)想多赚点钱了,加盟餐饮店去…… (3)工作不顺心了,搞个女装店去…… 但凡抱着…...

嵌入式笔试面试刷题(day16)
文章目录 前言一、PWM波形的占空比计算公式是什么?二、ADC和DAC在嵌入式系统中的应用场景有哪些?三、watchdog定时器的作用及其在系统中的使用是什么?四、JTAG接口在嵌入式开发中的作用是什么?五、实时操作系统(RTOS)的任务调度策…...

【MyBatis】MyBatis操作数据库(二):动态SQL、#{}与${}的区别
目录 一、 动态SQL1.1 \<if>标签1.2 \<trim>标签1.3 \<where>标签1.4 \<set>标签1.5 \<foreach>标签1.6 \<include>标签 二、 #{}与${}的区别2.1 #{}是预编译sql,${}是即时sql2.2 SQL注入2.3 #{}性能高于${}2.4 ${}用于排序功能…...

[Zer0pts2020]easy strcmp 分析与加法
查壳 Ubuntu上的64位程序 第一步应该尝试运行一下 啥也不是 (这里我改了程序,原来应该是a1>1) 但是我动调发现a1值是1 我就改了判断 但是还是没什么用 也找不到a2的引用 找一下有没有什么improt调用 发现还是啥也不是 思路这里断了 刚好这个程序几个代码而已 函数看…...

力扣7. 整数反转
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。 假设环境不允许存储 64 位整数(有符号或无符号)。 示例 1: 输…...

Mac/Linux getline 无法读取文件内容(读取内容无法显示)
如下面代码 #include <iostream> #include <fstream>using namespace std;int main() {string file_name "1.txt";std::ifstream file(file_name);if (file.is_open()) {std::string line;while (std::getline(file, line)) {char c line.back();cout…...

NBM 算法【python,算法,机器学习】
朴素贝叶斯法(Naive Bayes model)是基于贝叶斯定理与特征条件独立假设的分类方法。 贝叶斯定理 P ( A ∣ B ) P ( B ∣ A ) ∗ P ( A ) P ( B ) P(A|B)\frac{P(B|A) * P(A)}{P(B)} P(A∣B)P(B)P(B∣A)∗P(A) 其中A表示分类,B表示属性&…...

spark3.0.1版本查询Hbase数据库例子
需求背景 现有需求,需要采用spark查询hbase数据库的数据同步到中间分析库,记录spark集成hbase的简单例子代码 import org.apache.hadoop.hbase.HBaseConfiguration import org.apache.hadoop.hbase.client.{ConnectionFactory, Scan} import org.apach…...

android高效读图方式——Hardwarebuffer读图
安卓上有许许多多使用OpenGL来渲染的原因,比方说做特效/动画/硬解/人脸识别等等。渲染完成后如何从gpu中把数据快速读取出来也是高效图像处理中的重要的一环。 相对于glReadPixel的同步读取方式,安卓GLES3.0提供了更高效快速的Hardwarebuffer读图方式&a…...

悉数六大设计原则
悉数六大设计原则 目录 悉数六大设计原则前言☕谁发明了设计模式设计原则设计原则与设计模式的关系 单一职责什么是单一职责不遵循单一职责原则的设计遵循单一职责原则的设计单一职责的优点示例代码: 里氏替换原则什么是里氏替换原则示例代码:违反里氏替…...

hdfs复习
一.hadoop概述 1.4高(优势) 1).高可靠性:hadoop底层多个数据副本,即使某个计算节点存储出现故障,不会导致数据丢失。 2).高扩展性:可以动态增加服务器节点。 3).高效…...

css-Ant-Menu 导航菜单更改为左侧列表行选中
1.Ant-Menu导航菜单 导航菜单是一个网站的灵魂,用户依赖导航在各个页面中进行跳转。一般分为顶部导航和侧边导航,顶部导航提供全局性的类目和功能,侧边导航提供多级结构来收纳和排列网站架构。 2.具体代码 html <!-- 左侧切换 --><…...

02-CSS3基本样式
目录 1. CSS3简介 1.1 CSS3的兼容情况 1.2 优雅降级和渐进增强的开发思想 2. 新增选择器 2.1 选择相邻兄弟 2.2 匹配选择器 2.3 属性选择器(重点) 2.4 结构性伪类选择器(重点) 2.4.1 整体结构类型 2.4.2 标签结构类型 2.4.3 指定子元素的序号&…...