在unix shell中将日期字符串转换为long ksh

时间:2016-01-13 09:55:23

标签: unix ksh

如何将c中的以下代码转换为ksh脚本。下面的代码生成年月和日字符串的日期。然后将日期转换为长变量

    /* assemble date string */
sprintf(date_str,"%s%2s%s",year_str,month_str,day_str);

/* convert to a long  */
str2long((char *) date_str, 7, (long *) &long_date);    

1 个答案:

答案 0 :(得分:0)

如果您只是希望将其转换为直线长值,则可以使用以下函数执行此操作:

# Call with year month day
# e.g. convert_date_to_epoch 2015 01 01
function convert_date_to_epoch() {
    awk -v year=${1} -v month=${2} -v day=${3} 'BEGIN {
        agg_date = year " " month " " day " 00 00 00";
        utime = mktime(agg_date);
        print utime;
    }'
}

如果您不介意在ksh脚本中使用AWK语言,并且希望将其转换为纪元时间戳,则可以使用以下函数执行此操作:

{{1}}