[转载]date命令时间转换

摘要:
Linux时间戳和标准时间的互转在LINUX系统中,有许多场合都使用时间戳的方式表示时间,即从1970年1月1日起至当前的天数或秒数。如/etc/shadow里的密码更改日期和失效日期,还有代理服务器的访问日志对访问时间的记录等等。unix/linux时间戳转换为标准时间格式:selectTO_DATE+1235728935/86400+TO_NUMBER/24fromdual其中1235728935就是unix/linux时间戳,转换完之后就表示为2009-2-2718:02:15。

Linux时间戳和标准时间的互转

在LINUX系统中,有许多场合都使用时间戳的方式表示时间,即从1970年1月1日起至当前的天数或秒数。如/etc/shadow里的密码更改日期和失效日期,还有代理服务器的访问日志对访问时间的记录等等。

下面介绍几种时间戳格式和标准时间格式转换的方法:
1、分别以标准格式和时间戳来显示当前时间
[root@365linux ~]# date
2010年 08月 10日 星期二 03:39:21 CST
[root@365linux ~]# date +%s
1281382775
2、显示指定时间的时间戳
[root@365linux ~]# date -d "2010-07-20 10:25:30" +%s
1279592730

3、将时间戳转换为标准时间格式
方法1:使用date命令
[root@365linux ~]# date -d "@1279592730"
2010年 07月 20日 星期二 10:25:30 CST
[root@365linux ~]# date -d "1970-01-01 utc 1279592730 seconds"
2010年 07月 20日 星期二 10:25:30 CST
[root@365linux ~]# date -d "1970-01-01 14781 days" "+%Y/%m/%d %H:%M:%S"
2010/06/21 00:00:00
[root@localhost tmp]# date -d "@1279592730"
Tue Jul 20 10:25:30 CST 2010
[root@localhost tmp]# date -d "@1279592730" +"%Y%m%d %H:%M:%S"
20100720 10:25:30
[root@localhost tmp]# date -d "@1279592730" +"%F %H:%M:%S"
2010-07-20 10:25:30
[root@localhost tmp]# date -d "1970-01-01 utc 1279592730 seconds"
Tue Jul 20 10:25:30 CST 2010
[root@localhost tmp]# date -d "1970-01-01 utc 1279592730 seconds" +"%F %H:%M:%S" 2010-07-20 10:25:30

方法2:使用awk里的时间函数
[root@365linux ~]# echo "1279592730" |awk '{print strftime ("%F %T",$0)}'
2010-07-20 10:25:30

方法3:使用perl处理
[root@365linux ~]# perl -e 'print localtime(1279592730)." ";'
Tue Jul 20 10:25:30 2010

补充:
关于时间格式的解释

UTC (Universal Time Coordinated,UTC)世界协调时间
CST (China Standard Time UTC+8:00)中国沿海时间(北京时间)
GMT (Greenwich Mean Time)格林威治标准时间:

系统时区设置:
[root@365linux ~]# vim /etc/sysconfig/clock ZONE="Asia/Shanghai"
UTC=true
ARC=false
[root@365linux ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

oracle 中将unix/linux时间戳进行转换
unix/linux时间戳是按照从格林威治时间1970年1月1日期计算的一个秒数。

unix/linux时间戳转换为标准时间格式(主要是注意时区问题):
select TO_DATE('19700101','yyyymmdd') + 1235728935/86400 +TO_NUMBER(SUBSTR(TZ_OFFSET(sessiontimezone),1,3))/24 from dual 其中1235728935就是unix/linux时间戳,转换完之后就表示为 2009-2-27 18:02:15。

反过来也一样,还是要考虑时区:
select (to_date('2009-2-27 18:02:15','yyyy-mm-dd hh24:mi:ss') - to_date('1970-1-1','yyyy-mm-dd'))86400- TO_NUMBER(SUBSTR(TZ_OFFSET(sessiontimezone),1,3))3600 from

免责声明:文章转载自《[转载]date命令时间转换》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇unity3d 导出 Excel使用Xshell连接Ubuntu下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java中将String格式的标准时间字符串转换为Date格式的方法

场景 前端在往后端传递时间参数时,传递的是标准时间格式的字符串。 比如下面的lxyf参数 怎样将其转换为Date格式。 注: 博客:https://blog.csdn.net/badao_liumang_qizhi关注公众号霸道的程序猿获取编程相关电子书、教程推送与免费下载。 实现 调用如下转换格式的方法 Date lxyfDate = str2Date...

Oracle中TO_DATE TO_CHAR格式

TO_CHAR 是把日期或数字转换为字符串 TO_DATE 是把字符串转换为数据库中得日期类型转换函数 TO_NUMBER 将字符转化为数字TO_CHAR 使用TO_CHAR函数处理数字 TO_CHAR(number, '格式') TO_CHAR(salary,’$99,999.99’); 使用TO_CHAR函数处理日期 TO_CHAR(date,’格式...

《Spark Python API 官方文档中文版》 之 pyspark.sql (四)

摘要:在Spark开发中,由于需要用Python实现,发现API与Scala的略有不同,而Python API的中文资料相对很少。每次去查英文版API的说明相对比较慢,还是中文版比较容易get到所需,所以利用闲暇之余将官方文档翻译为中文版,并亲测Demo的代码。在此记录一下,希望对那些对Spark感兴趣和从事大数据开发的人员提供有价值的中文资料,对PyS...

Java:Date、Calendar、Timestamp的使用

一、Java.util.Date      该对象包含了年月日时分秒信息。具体使用如下代码: //String 转换为Date private static void dateDemo() throws ParseException{ String dateStr="2016-05-31 13:45:04";...

插入格式|分章节显示参考文献|修改参考文献格式

信息检索: 与online同步需要新建library 修改参考文献格式: 分章节显示参考文献: 转自:[穿越星空](http://blog.sciencenet.cn/blog-485-448980.html) 插入Chinese Std GBT7714 (author-year)及Chinese Std GBT7714 (numeric)格式 在引...

OracleERP表结构INV模块

INV模块常用表结构  表名:inv.mtl_system_items  说明: 物料主表  列名 类型 含义ORGANIZATION_ID NUMBER 组织代码INVENTORY_ITEM_ID NUMBER 项目内码SEGMENT1 VARCHAR2(40) 项目编码(外码)UNIT_OF_ISSUE 单位DESCRIPTION 项目说明ALLOWE...