shell的date日期循环方法:日期格式转时间戳计算,再将时间戳转回日期格式

1,日期对象转时间戳current_day

2,计算增量的时间戳,即循环每步的增量one_day

3,循环体计算,日期变量加增量后重新赋值自己

4,时间戳转回日期格式后输出

current_day=2015-07-17
end_day=2014-01-01
#步骤1
timestamp_current=`date -d "$current_day" +%s`
timestamp_end=`date -d "$end_day" +%s`
#步骤2
one_day=$((24*60*60))

while [ $timestamp_current -ge $timestamp_end ]
do
    echo $timestamp_current
    #步骤4
    date -d @$timestamp_current +%Y-%m-%d
    sh /opt/uv_report/hive_2_hdfs_ad_day.sh /user/wizad/uv_report/uv_day/ $timestamp_current
    exitCode=$?
    if [ $exitCode -ne 0 ];then
       echo "[ERROR] uv_day for $timestamp_current"
       exit $exitCode
    fi
    sh /usr/local/datahub/DataHub.sh /opt/uv_report/uv_day_2_mysql.xml -p /opt/uv_report/uv_day_2_mysql_params -d job.business.date=2015-07-30
    if [ $exitCode -ne 0 ];then
       echo "[ERROR] insert into mysql table for $timestamp_current"
       exit $exitCode
    fi
    #步骤3
    timestamp_current=$(($timestamp_current-$one_day))
done

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-07 13:05:18

shell的date日期循环方法:日期格式转时间戳计算,再将时间戳转回日期格式的相关文章

JS中如何将字符串转化成日期 日期格式化方法

<!--     /**     * 对Date的扩展,将 Date 转化为指定格式的String     * 月(M).日(d).12小时(h).24小时(H).分(m).秒(s).周(E).季度(q) 可以用 1-2 个占位符     * 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)     * eg:     * (new Date()).pattern("yyyy-MM-dd hh:mm:ss.S") ==> 2006-0

javascript 的Date 格式化, 模仿shell中date命令的格式

原文:javascript 的Date 格式化, 模仿shell中date命令的格式 shell 中显示当前的日期 [[email protected]]$ date '+%Y-%m-%d %H:%M:%S' 2015-01-19 16:24:58 把javascript 中的Date object 格式化成适合的字符串,很不方便,模拟shell中的格式 下面先用3段简单的代码来说明模拟函数中用到的特性 字符串的replace var a = '1234' undefined a.replace

javascript日期格式化方法汇总

本文给大家汇总介绍了javascript格式化日期时间的几种常用方法,个人对最后一种个性化输出时间比较有兴趣,基本上只要项目中能用到都是使用这种,推荐给小伙伴们. 方法一: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 // 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s).季度(q) 可以用 1-2 个占位符, // 年(y)可以用 1-4 个占位符,毫秒(S

spingmvc 返回json数据日期格式化方法

第一种: json 用的是这个依赖 <!-- JSON lib 开发包 以及它的依赖包 --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.6.0</version> </dependency> 在springmvc返回j

Objective-C日期相关工具方法

//date根据formatter转换成string +(NSString*)dateToString:(NSString *)formatter date:(NSDate *)date { NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:formatter]; return[dateFormatter stringFromDate:date]; } //s

Java 获取指定日期的方法总结 -转

格式化日期 String-->Date  或者 Data-->String SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");    Date  date = sdf.parse("2009-11-04");//String-->Date String  sdate  = sdf.format(date );// Data-->String ==================

Map:比较新增加日期的和需要删除的日期 使用方法

1.场景描述:根据在日历选择的日期,数据库来保持我们选择日期. 2.方法,硬删除的方法,每次全部删除,然后再重新添加选择的新的日期.这样导致如果需要保存create_time的情况,那么每次操作的都是最新的create_time 3.思路,只要动态发生变化的才需要进行添加,或删除.如: 3.1 20150125,20150126,20150127, 3.2 20150124,20150125,20150126,(新增一个20150124,删除一个20150127,中间的20150125,2015

solr和java时区时间日期转化方法

我们一般得到的时间为当地时区的时间,而我存储到服务器上时想得到格林威治时间(GMT)和世界协调时间(UTC).一种是通过时间差计算:目标时区时间+时区差=本时区的时间.另一种则是通过设置时区不过要调用set方法,在多线程情况下调用set会发生错误,所以最好使用第一种: 第一种代码: package com; import java.text.SimpleDateFormat; import java.util.Date; import java.util.TimeZone; public cla

java按文件大小、名称、日期排序方法

代码如下: //java按文件大小.名称.日期排序 //java按文件大小.名称.日期排序方法 import java.io.*; import java.util.*; public class FileOrder{ //按照文件大小排序 public static void orderByLength(String fliePath) { List< File> files = Arrays.asList(new File(fliePath).listFiles()); Collectio