免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5847 | 回复: 15
打印 上一主题 下一主题

[SCO UNIX] 通过设置时区来计算N天之前日期的Shell小程序 [复制链接]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-10-26 11:17 |只看该作者 |倒序浏览
向曾经询问如何通过调整时区获得昨天日期的网友致歉,
我当时认为不可能,今天看老外的坛子,发现事实上是可以的。
一般系统安装都是基于RTC时钟的,所以方法应当通用。
为了通用,我在老外的例子上做了一些改动,请各位需要的参考:
#!/bin/sh
N=1 # N>;0获得多少天前的日期,N<0获得多少天之后的日期
OTZ=$TZ
TZ=`echo $TZ | awk -v nn=$N '{h=substr($1,1,3); \
a=substr($1,4);b=a+24*nn;printf("%s%+d",h,b)}'`
export TZ
echo "TZ="$TZ "TIME="`date`
TZ=$OTZ;export TZ

论坛徽章:
0
2 [报告]
发表于 2004-10-26 15:27 |只看该作者

通过设置时区来计算N天之前日期的Shell小程序

谢谢,收到!

顺便问一句,老外的坛子能给地址吗,呵呵

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
3 [报告]
发表于 2004-10-26 15:32 |只看该作者

通过设置时区来计算N天之前日期的Shell小程序

我经常去这个老外坛子:
http://unix.derkeiler.com/Newsgroups/

论坛徽章:
0
4 [报告]
发表于 2004-10-26 15:43 |只看该作者

通过设置时区来计算N天之前日期的Shell小程序

cnl,我有个疑问,这个shell是通过awk的printf来显示日期格式,这样把时间转换吧??

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
5 [报告]
发表于 2004-10-26 16:00 |只看该作者

通过设置时区来计算N天之前日期的Shell小程序

printf是输出日期差值所在的时区值

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
6 [报告]
发表于 2004-10-26 16:13 |只看该作者

通过设置时区来计算N天之前日期的Shell小程序

的确用TZ 的方式取时间很方便

但是需要注意
1.最好不要在命令行执行相关命令,会改变时间的,如果这时候运行了相关的应用,会造成时间不对
2.北京是东八区,取前一天时间
TZ=TZ+16就是前一天,
如果取TZ=TZ+24 会有问题,在早上八点前执行,取到的是前天日期

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
7 [报告]
发表于 2004-10-26 16:26 |只看该作者

通过设置时区来计算N天之前日期的Shell小程序

对,不要在shell命令行上,使用要编写个shell执行
meter06老大说的CST+16,意思是北京时区CST-8中的-8+24=16

论坛徽章:
0
8 [报告]
发表于 2004-10-26 16:33 |只看该作者

通过设置时区来计算N天之前日期的Shell小程序

原帖由 "meteor06" 发表:
的确用TZ 的方式取时间很方便

但是需要注意
1.最好不要在命令行执行相关命令,会改变时间的,如果这时候运行了相关的应用,会造成时间不对
2.北京是东八区,取前一天时间
TZ=TZ+16就是前一天,
如果取TZ=TZ+24 会..........


传说中的大虾出现了,呵呵,为什么取TZ=TZ+24会出问题?一定要早上8点吗,这个跟时间有关系吗,谢谢

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
9 [报告]
发表于 2004-10-26 16:42 |只看该作者

通过设置时区来计算N天之前日期的Shell小程序

原帖由 "xchen301" 发表:


传说中的大虾出现了,呵呵,为什么取TZ=TZ+24会出问题?一定要早上8点吗,这个跟时间有关系吗,谢谢


北京是东八区,也就是TZ-8,

TZ+24与格林威治时间相差24小时
2者的时间差一共是24+8=32个小时

论坛徽章:
0
10 [报告]
发表于 2004-10-26 17:07 |只看该作者

通过设置时区来计算N天之前日期的Shell小程序

meter06老大你说的是-8+24=+16吧
北京是CST-8那么昨天就是CST(-8+24)=CST+16啦
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP