当前位置: 技术问答>linux和unix
Solaris 下面date的命令不能使用date -d要用什么代替
来源: 互联网 发布时间:2016-12-07
本文导语: 我在UNIX系统下面使用date -d '1970-01-01 UTC '1167609600' seconds' +"%H“可以获得在UTC时间1970年1月1日的时候我所在的地方时什么时间(小时),但是在Solaris 下面就没这个选项了,请问下我要怎么才能获取到这个时区的值...
我在UNIX系统下面使用date -d '1970-01-01 UTC '1167609600' seconds' +"%H“可以获得在UTC时间1970年1月1日的时候我所在的地方时什么时间(小时),但是在Solaris 下面就没这个选项了,请问下我要怎么才能获取到这个时区的值呢,
获取时区就可以,
我是想获得一个本地时区,用数字显示,如果在Solaris 系统下面有其他的办法也可以,求高人帮助下,不胜感激
获取时区就可以,
我是想获得一个本地时区,用数字显示,如果在Solaris 系统下面有其他的办法也可以,求高人帮助下,不胜感激
|
因为需要编写一个脚本,自动备份前一天的日志文件,其文件名包含了日期信息。在Linux下面比较容易,因为date命令支持-d参数,但是Solaris下的date命令并不支持这个参数。
网上也有许多专门为此编写的Shell函数,一般来说都比较复杂,更为简单的实现方法是时区变换大法,如下:
export TZ="TAIST+16" && date|awk '{print $2,$3}' && export TZ="TAIST-8"
上面的脚本考虑到中国使用的时间都是TAIST-8,所以首先改为TAIST+16,相当于提前一天,执行完成后再将时区信息改回来。
当在shell中调用时则更加简单一些,因为其中命令修改的环境变量只影响当前行,所不需要涉及改回时区的问题,只需要根据自己所在时区,正确计算所需要设置的时区即可。例如:
DATE=`TZ="TAIST+16" date +%Y-%m-%d`
这样前一天的日期就已经保存到变量DATE中了。相对于网上各种转换或计算函数,更为简单明了。
» admin's blog Login to post comments
Linux可以使用如下命令: date
Submitted by admin on Fri, 11/28/2008 - 10:26.
Linux可以使用如下命令:
date -d"yesterday" +%m%d 前一天
date -d"last 2" +%m%d 前两天
以上在linux上可以,Solaris 上没有-d参数
测试没有成功
网上也有许多专门为此编写的Shell函数,一般来说都比较复杂,更为简单的实现方法是时区变换大法,如下:
export TZ="TAIST+16" && date|awk '{print $2,$3}' && export TZ="TAIST-8"
上面的脚本考虑到中国使用的时间都是TAIST-8,所以首先改为TAIST+16,相当于提前一天,执行完成后再将时区信息改回来。
当在shell中调用时则更加简单一些,因为其中命令修改的环境变量只影响当前行,所不需要涉及改回时区的问题,只需要根据自己所在时区,正确计算所需要设置的时区即可。例如:
DATE=`TZ="TAIST+16" date +%Y-%m-%d`
这样前一天的日期就已经保存到变量DATE中了。相对于网上各种转换或计算函数,更为简单明了。
» admin's blog Login to post comments
Linux可以使用如下命令: date
Submitted by admin on Fri, 11/28/2008 - 10:26.
Linux可以使用如下命令:
date -d"yesterday" +%m%d 前一天
date -d"last 2" +%m%d 前两天
以上在linux上可以,Solaris 上没有-d参数
测试没有成功
|
刚才有人在问呢
试试
a=`date +"%:::z"|cut -c2-`
试试
a=`date +"%:::z"|cut -c2-`
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。