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 ~]$ date
Sat Nov  3 22:01:57 CST 2018

获取特定以特定格式,命令为: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/03 22:08:14

获取昨天的日期。可在上述的命令里再加上-d选项。

[alvin@VM_0_16_centos ~]$ date -d ‘yesterday‘ +‘%Y/%m/%d %H:%M:%S‘
2018/11/02 22:24:31

或者

[alvin@VM_0_16_centos ~]$ date -d ‘today -1 day‘ +‘%Y-%m-%d‘
2018-11-04

获取当前时间的前一个小时

[alvin@VM_0_16_centos ~]$ date -d ‘today -1 hour‘ +‘%Y%m%d%H‘
2018110414

或者

[alvin@VM_0_16_centos ~]$ date +‘%Y-%m-%d %H:%M:%S‘ -d ‘-1 hours‘
2018-11-04 14:43:38

获取指定日期前一天。这其实就是求相对时间。比如下面求国庆的前一天日期:

[alvin@VM_0_16_centos ~]$ date -d ‘20181001 -1 day‘ +‘%Y%m%d‘
20180930

将日期转换为时间戳

[alvin@VM_0_16_centos ~]$ date -d "Nov  4 15:49:41 CST 2018" +%s
1541317781

将时间戳转换回日期

[alvin@VM_0_16_centos ~]$ date -d @1541317781
Sun Nov  4 15:49:41 CST 2018

将时间戳转换为日期,并按特定格式显示

[alvin@VM_0_16_centos ~]$ date -d @1541317781 +‘%Y%m%d %H:%M:%S‘
20181104 15:49:41

原文地址:https://www.cnblogs.com/legendjaking/p/10463691.html

时间: 2024-10-01 02:39:00

Linux下Shell日期的格式的相关文章

Linux下Shell编程

Linux的shell编程 1.什么是shell? 当一个用户登录Linux系统之后,系统初始化程序init就为每一个用户运行一个称为shell(外壳)的程序. shell就是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动.挂起.停止甚至是编写一些程序.一般的Linux系统都将bash作为默认的shell. 2.几种流行的shell 目前流行的shell有ash.bash.ksh.csh.zsh等,可以用下面的命令来查看she

Linux 下shell显示-bash-4.1$不显示用户名路径的解决方法

Linux CentOS下shell显示-bash-4.1$不显示用户名路径的解决方法 问题描述: CentOS下新增一个用户,登录进去之后shell脚本的信息如下: 而不是我们经常看到的[email protected]的组合,看起来很不舒服. 解决方案: 问题的原因是因为没有配置.bash_profile的问题,可以通过配置这个文件来解决问题. 1.在Terminal输入: vi ~/.bash_profile 2.如果没有.bash_profile可以自己添加.然后往文件中添加如下内容:e

linux 下shell 编写脚本

linux 下shell 编写脚本: 1.程序结构练习:编写一个脚本,给定一个正整数,计算出这个数所有位的数字之和. 例如:程序给定输入123,那么应该返回1+2+3=6. 2.程序结构练习:编写一个脚本,给定一个正整数,反序输出这个这个数. 例如:程序输入123,那么应该输出321. 3.Linux命令+shell编程:编写一个程序,实现定时文件备份的功能. 要求: 1.备份某个目录下的所有文件 2.对备份文件进行压缩 3.生成合理的日志文件 4.Shell下的gui(libnotify-bi

linux下shell脚本执行方法及exec和source命令

exec和source都属于bash内部命令(builtins commands),在bash下输入man exec或man source可以查看所有的内部命令信息. bash shell的命令分为两类:外部命令和内部命令.外部命令是通过系统调用或独立的程序实现的,如sed.awk等等.内部命令是由特殊的文件格式(.def)所实现,如cd.history.exec等等. 在说明exe和source的区别之前,先说明一下fork的概念. fork是linux的系统调用,用来创建子进程(child

在linux下怎样挂载NTFS格式的磁盘

1.问题描述: # mount –t ntfs /dev/sdc1 /mnt/usb   mount: unknown filesystem type 'ntfs' 这是由于默认linux系统上无法识别NTFS格式的分区. 2.解决办法: 通过使用 ntfs-3g 来解决. 打开ntfs-3g的下载点http://www.tuxera.com/community/ntfs-3g-download/ ,将最新稳定ntfs-3g_ntfsprogs-2014.2.15.tgz下载到linux系统中.

Linux下Shell脚本输出带颜色文字

Linux下Shell脚本输出带颜色文字 文本终端的颜色可以使用"ANSI非常规字符序列"来生成. 举例:    "echo -e \033[44;37;5m BLUE \033[0m" "echo -e \033[44;37;5m BLUE \033[0m BLACK" 需要修改的地方是红色带下划线的部分,其中[***m部分的内容换成下面的数字,后面的内容是自己想要上色的内容. 以上命令设置作用如下:背景色为蓝色,前景色为白色,字体闪烁,输出字

Linux下shell编程实例

1. 判断一文件是不是块或字符设备文件,如果是将其拷贝到 /dev 目录下 read -p "input a file:" filename if [ -b $filename -o -c $filename ] then cp $filename /dev/ fi 2.编写一个脚本,进行简单的减法运算,要求提示输入变量 #!/bin/bash read -p "input a number:" num1 read -p "input another nu

Linux下Shell介绍

? 一.概述 每个人在成功登陆Linux后,系统会出现不同的提示符号,例如$,~,#等,然后你就可以开始输入需要的命令.若命令正确,系统就会依据命令的要求来执行,直到注销系统为止,在登陆到注销期间,输入的每个命令都会解译及执行,而负责的机制就是shell ? 二.Linux下Shell的执行过程 Shell可以理解为解析Linux命令的功能块,相当于Windows下的bat批处理文件,例如:在Windows桌面下新建del.bat文件,打开并编辑命令del E:\test.txt,在E盘目录下新

Linux下shell中case命令详解(常规的break、无条件继续和有条件继续)

linux下shell中的case名字和C/C++中的switch类似,但是shell中的case更强大和复杂. 1.强大主要体现在:shell中case中的关键字可以是字符串类型,而每一项中可以包含正则表达式. 2.复杂主要体现在:shell中case的每一个项后有三个选择:break(常规的break).unconditional follow up(无条件继续)和conditional follow up(有条件继续). 这篇文章的重点是上面的第2点. case的无条件继续和有条件继续是b