Solaris下用date获得前一天日期

本文介绍了一种在Solaris和Linux环境下获取前一天日期的简便方法,通过改变时区来间接实现日期减法,适用于需要自动备份日志文件等场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自:http://tilt.lib.tsinghua.edu.cn/node/386

 

因为需要编写一个脚本,自动备份前一天的日志文件,其文件名包含了日期信息。在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中了。相对于网上各种转换或计算函数,更为简单明了。

Comments

Linux可以使用如下命令: date

Permalink 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参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值