在unix中寻求帮助以使用unix日期获取以下日期戳:
today at 12:00am
12:00am - 15 days ago
12:00am - 30 days ago
在Unix时代? (1300295838
)
答案 0 :(得分:3)
今天12点:
mydate="`date +%D` 12:00"
做日期算术:
date -d "$mydate 15 days ago"
获得纪元时间:
date +%s
将oneliner放在一起:
date -d "`date +%D` 12:00 15 days ago" +%s
答案 1 :(得分:1)
计算YESTERDAY的日期:
时间是以秒为单位的当前时间(一天中的秒数)
dateYYYYMMDD=`perl -MPOSIX -le 'print strftime "%Y%m%d", localtime(time-60*60*24);'`
时间+/-计算当前时间之前或之后所需日期的秒数,以秒为单位。
答案 2 :(得分:0)
您可以在shell上使用date -d
让它显示您指定的时间,而不是当前时间。有关时间格式化字符的信息,请参阅:http://unixhelp.ed.ac.uk/CGI/man-cgi?date
答案 3 :(得分:0)
您可以使用DateTime之类的perl库来轻松完成此操作。
例如,以下代码创建了一个新日期,我从今天开始减去15天,然后调用纪元函数:
use DateTime;
my $dt = DateTime->now
->subtract(days => 15)
->set_hour(0)
->set_minute(0)
->set_second(0);
print $dt->epoch(),"\n";