LinuxSir.Org  
| 网站首页 | 注册账号 | 论坛帮助 |

欢迎来到LinuxSir.Org!
您还未登录,请登录后查看论坛,或者点击论坛上方的注册链接注册新账号。


发表新主题 回复
精华主题  
主题工具
旧 03-03-12, 17:17 第 1 帖
冷风
 
 
 
注册会员  
  注册日期: Sep 2002
  帖子: 482
  精华: 1
 

标题: 如何在shell中将unix时间戳转换为系统时间


例如:将时间戳1047335700 换算成可以识别的年月日分秒
求详细的换算方法







__________________
欢迎访问:
http://www.chinalinuxpub.com我的资料库
http://www.chinalinuxpub.com/bbs 我的坛子

此帖于 03-08-08 21:27 被 KornLee 编辑.
  冷风 当前离线   回复时引用此帖
旧 03-08-08, 21:30 第 2 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

翻了翻坛子,发现了一个一直没人回复的老帖子!不知道哪位兄弟能解决它!

此帖于 03-08-08 21:41 被 KornLee 编辑.
  KornLee 当前离线   回复时引用此帖
旧 03-08-09, 12:21 第 3 帖
lucida
 
 
 
注册会员  
  注册日期: Oct 2002
  我的住址: .:DRL:.
  帖子: 2,492
  精华: 9
 

man date..u will find it







__________________
E6300@3.2G/P5B-D WiFi/2G RAM/1TB HDD/3540A/7900GT/E-MU 0404
Logitech S 510/MX Revolution/2407WFP/LaserJet 1020
go wild, go Gentoo
  lucida 当前离线   回复时引用此帖
旧 03-08-09, 14:47 第 4 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

引用:
最初由 penny 发表
man date..u will find it
我记得用awk可以实现的!man date里我没有找到答案!
$date +%s
1060417972
只能把当前系统时间转换成UNIX的时间戳!
代码:
%s seconds since `00:00:00 1970-01-01 UTC' (a GNU extension)
而楼主的意思是给反过来,望指点

此帖于 03-08-09 16:31 被 KornLee 编辑.
  KornLee 当前离线   回复时引用此帖
旧 03-08-10, 06:15 第 5 帖
lucida
 
 
 
注册会员  
  注册日期: Oct 2002
  我的住址: .:DRL:.
  帖子: 2,492
  精华: 9
 

sorry,我记错了
是info date
看example小节的最后
  lucida 当前离线   回复时引用此帖
旧 03-08-10, 10:25 第 6 帖
Glue
 
Glue 的头像
 
 
注册会员  
  注册日期: Dec 2002
  我的住址: 新加坡
  帖子: 3,129
  精华: 3
 

不要卖关子嘛,就是这一句

date -d '1970-01-01 UTC 946684800 seconds' +"%Y-%m-%d %T %z"







__________________
又回来了
  Glue 当前离线   回复时引用此帖
旧 03-08-10, 17:50 第 7 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

代码:
date -d '1970-01-01 UTC 946684800 seconds' +"%Y-%m-%d %T %z"
very wonderful......
多谢Gule兄指点

此帖于 03-08-10 17:53 被 KornLee 编辑.
  KornLee 当前离线   回复时引用此帖
旧 03-08-10, 18:23 第 8 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

总结:
date命令实在厉害,
用date +%s可以得到UNIX的时间戳,
[/home/javalee/myshell]date +%s
1060510783
而用
代码:
#!/bin/ksh # date -d '1970-01-01 UTC '$1' seconds' +"%Y-%m-%d %T"
[/home/javalee/myshell]utc 1047335700
2003-03-11 06:35:00
可以把UNIX时间戳转换成当前系统时间!
太神奇啦~~
之所以加精,是要让我们详细的来阅读每个命令的使用方法!不能错过一丝细节

此帖于 03-08-10 18:40 被 KornLee 编辑.
  KornLee 当前离线   回复时引用此帖
旧 03-08-10, 20:37 第 9 帖
lucida
 
 
 
注册会员  
  注册日期: Oct 2002
  我的住址: .:DRL:.
  帖子: 2,492
  精华: 9
 

引用:
最初由 Glue 发表
不要卖关子嘛,就是这一句

date -d '1970-01-01 UTC 946684800 seconds' +"%Y-%m-%d %T %z"
如果我直接给这一句,那才是卖关子。。。
告诉别人在info 里面可以找到,比记这一堆方便的多。

  lucida 当前离线   回复时引用此帖
旧 03-08-10, 21:52 第 10 帖
seablue
 
seablue 的头像
 
 
注册会员  
  注册日期: Apr 2003
  我的住址: 银河系
  帖子: 999
  精华: 3
 

厉害!
  seablue 当前离线   回复时引用此帖
旧 03-08-10, 23:18 第 11 帖
Glue
 
Glue 的头像
 
 
注册会员  
  注册日期: Dec 2002
  我的住址: 新加坡
  帖子: 3,129
  精华: 3
 

有道理

还应该解释一下 UNIX时间戳 就是1970-01-01到某个时间的总秒数。
那样就可以自己编个程序算一算了
  Glue 当前离线   回复时引用此帖
旧 03-08-10, 23:19 第 12 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

引用:
告诉别人在info 里面可以找到,比记这一堆方便的多。
OK!
授之以鱼,不如授之以渔!
  KornLee 当前离线   回复时引用此帖
旧 04-09-03, 21:07 第 13 帖
x-dongzi
 
 
 
注册会员  
  注册日期: May 2003
  帖子: 771
  精华: 0
 

不知道有人知道不用date命令,而是另写的算法吗?







__________________
上边的话好象是我写的~~~~~~~^-^!
  x-dongzi 当前离线   回复时引用此帖
旧 04-09-03, 23:59 第 14 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

用shell是可以得到一个时间戳的具体日期的
/home/lee#date +%s
1094227026
/home/lee#echo $((365*24*3600))
31536000
/home/lee#echo $((1094227026/31536000))
34 <---1970+34就是今年
...
ps:比较烦琐些 :(,有兴趣的可以练一练
  KornLee 当前离线   回复时引用此帖
旧 06-02-16, 23:17 第 15 帖
zBS
 
 
 
注册会员  
  注册日期: Mar 2004
  帖子: 46
  精华: 1
 

今天也遇到了这个问题。谢谢楼上的各位。顺便把自己把unix时间戳转换成日期的方法告诉大家。比较菜。大家别笑话。呵呵
代码:
EA102:~# date -d '2006-02-14 00:00:00' +%s 1139846400 EA102:~# date -d '1970-01-01 UTC 1139846400 seconds' +'%Y-%m%d %T %z' 2006-0214 00:00:00 +0800 这个是按照楼上的方法
  zBS 当前离线   回复时引用此帖
发表新主题 回复


主题工具

发帖规则
您 [不可以] 发表新主题
您 [不可以] 回复主题
您 [不可以] 上传附件
您 [不可以] 编辑您的帖子

已 [启用] BB 代码
已 [启用] 表情符号
已 [启用] IMG 代码
已 [禁用] HTML 代码
[论坛跳转…]


所有时间均为[北京时间]。现在的时间是 13:15


Powered by vBulletin 版本 3.6.8
版权所有 ©2000 - 2010, Jelsoft Enterprises Ltd.
官方中文技术支持: vBulletin 中文
版权所有 ©2002 - 2009, LinuxSir.Org