Dd/mm/yy or dd/mm/yyyy to UNIX epoch


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Dd/mm/yy or dd/mm/yyyy to UNIX epoch
# 1  
Old 02-25-2013
Sun Dd/mm/yy or dd/mm/yyyy to UNIX epoch

Hi Experts,

I'm facing an issue with date. My requirement is as follows

Code:
./script "dd/mm/yy" or ./script "dd/mm/yyyy" 

epoch time

Im using solaris 10 and have downloaded gnu date.

I have tried using

Code:
[root@###### /usr/local/bin]$/usr/local/bin/date -d '25/02/2013'
/usr/local/bin/date: invalid date '25/02/2013'

Any ideas.

Thanks in Advance.
# 2  
Old 02-25-2013
Hi, this code works with ksh
Code:
HOUR=12
MIN=41
SEC=11
DAY=01
MONTH=01
YEAR=2012
set -A MONTHS 0 0 31 59 90 120 151 181 212 243 273 304 334 365
echo "b=0;if(${MONTH}>2) if (${YEAR}%4==0) b=1; \
${SEC}+${MIN}*60+${HOUR}*3600+(${MONTHS[${MONTH}]} + ${DAY} + b-1)*86400+\
(${YEAR}-1970)*31536000+((${YEAR}-1969)/4)*86400" | bc

# 3  
Old 02-25-2013
Found the answer

I have finished a bash script for it,it is as follows

Code:
#!/usr/bin/bash
#
# SHA : Tue Feb 26 02:19:26 EST 2013
# This procedure takes date in dd/mm/yyyy or dd/mm/yy format as input and outputs in UNIX epoch time

USAGE ()
{

echo -e "\n"

echo "`/usr/xpg4/bin/basename "$0"`  dd/mm/yyyy or dd/mm/yy"

echo -e "\n";echo "Example :  `/usr/xpg4/bin/basename "$0"` 24/02/2013 or `/usr/xpg4/bin/basename "$0"` 24/02/13"

echo -e "\n"

exit

}


INP_VALIDATION ()
{

if [ $# -eq 0 ]

then

 USAGE

fi

dd=`echo "$1" | /usr/xpg4/bin/awk -F'/' '{print $1}'`

mm=`echo "$1" | /usr/xpg4/bin/awk -F'/' '{print $2}'`

yy=`echo "$1" | /usr/xpg4/bin/awk -F'/' '{print $3}'`

YRLNGTH=`echo "$yy" | /usr/xpg4/bin/awk  '{print length}'`


if [ $dd -le 31 ] && [ $dd -ge 01 ]

then

DD=`echo "$dd"`

else

USAGE

fi

if [ $mm -le 12 ] && [ $mm -ge 01 ]

then

MM=`echo "$mm"`

else

USAGE

fi




 if [ $YRLNGTH -eq 02 ]

   then

  CURYR=`date +%y`

 if [ $yy -gt $CURYR ]

   then

  oyy=`echo "19$yy"`

  YY=`echo "$oyy"`

 elif [ $yy -le $CURYR ]

    then

  nyy=`echo "20$yy"`

  YY=`echo "$nyy"`

else

 USAGE

 fi



 elif [ $YRLNGTH -eq 04 ]

     then

   YY=`echo "$yy"`

    else

    USAGE

 fi

export DATEINP=`echo "$YY/$MM/$DD"`


}

INP_VALIDATION $1

## USING GNU COMPILED DATE

/usr/local/bin/date --date "$DATEINP" +%s

The output is as follows

Code:
[root@####/]$getdate 26/02/2013
1361797200
[root@#### /]$getdate 26/02/13
1361797200
[root@##### /]$

Any ideas to improvise the one i wrote would be highly appreciated

Thanks in advanceSmilie
# 4  
Old 02-25-2013
Whenever you do VAR=`echo asdf` that's -- you might as well do VAR="asdf" and avoid the middleman.

You can replace most of your echo | awk with one shell statement.

There's no point exporting a variable if you're feeding it into something's commandline arguments directly.

Code:
IFS="/" read yy mm dd <<EOF
$1
EOF

YRLNGTH="${#yy}"

...

DATEINP="$YY/$MM/$DD"

# 5  
Old 02-26-2013
Perhaps if your function fails to validate date pass it on to gnudate anyway:
Code:
if INP_VALIDATION "$*"
then
    /usr/local/bin/date --date "$DATEINP" +%s
else
    /usr/local/bin/date --date "$*" +%s
fi

Above requires all USAGE calls in INP_VALIDATION to be changed to return 1

This will allow you to do:
Code:
$ getdate today -1day
1361765980
$ getdate next tuesday
1362405600
$ getdate 17 Dec 2012
1355666400


Last edited by Chubler_XL; 02-26-2013 at 12:30 AM..
# 6  
Old 02-26-2013
I will ammend as per the recommendations

Thank you all, will amend as per recommendationSmilie.
# 7  
Old 03-27-2013
Hi all,
Can any1 suggest me how can i get the epoch time of file.
i mean...
ls -l test.txt | awk '{print $6,""$7,""$8}' gives me Nov 30 2011...
now is there any way i can convert this into epoch time for this particular file only...
Thanks
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

How to convert mmm-yy to mm/dd/yyyy format in UNIX ?

How to convert mmm-yy to mm/dd/yyyy format in unix ? example: Jan-99 to 01/01/1999 Jan-00 to 01/01/2000 Jan-25 to 01/01/2025 Dec-99 to 01/12/1999 Dec-00 to 01/12/2000 Dec-25 to 01/12/2025 YY anything between 00-50 should be 2000-2050 YY anything between 51-99 should be 1951-1999 ... (2 Replies)
Discussion started by: gksenthilkumar
2 Replies

2. Shell Programming and Scripting

Date format YYYY/MM/DD to DD/MM/YYYY

I am getting output of YYYY-MM-DD and want to change this to DD/MM/YYYY. When am running the query in 'Todd' to_date(column_name,'DD/MM/YYYY') am getting the required o/p of DD/MM/YYYY, But when am executing the same query(Netezza) in linux server(bash) am getting the output of YYYY-MM-DD file... (3 Replies)
Discussion started by: Roozo
3 Replies

3. UNIX for Dummies Questions & Answers

Epoch date to YYYY/MM/DD or MM/DD/YYYY

I've seen a lot of posts on this and have tried the following: echo 1257000000| perl -e '($d,$m,$y)=(localtime(time-86400));$m+=1;$y+=1900;printf "$y/$m/$d\n";' But I am unable to convert a past Epoch date into a format such as YYYY/MM/DD or MM/DD/YYYY. I am using bash and don't know... (4 Replies)
Discussion started by: newbie2010
4 Replies

4. Shell Programming and Scripting

Converting date DD MM YYYY to DD MON YYYY

Hello, I am writing a script that parses different logs and produces one. In the source files, the date is in DD MM YYYY HH24:MI:SS format. In the output, it should be in DD MON YYY HH24:MI:SS (ie 25 Jan 2010 16:10:10) To extract the dates, I am using shell substrings, i.e.: read line ... (4 Replies)
Discussion started by: Adamm
4 Replies

5. Shell Programming and Scripting

change date format from yyyy/mm/dd to dd/mm/yyyy

(Attention: Green PHP newbie !) I have an online inquiry form, delivering a date in the form yyyy/mm/dd to my feedback form. If the content passes several checks, the form sends an e-mail to me. All works fine. I just would like to receive the date in the form dd/mm/yyyy. I tried with some code,... (6 Replies)
Discussion started by: keyboarder
6 Replies

6. Shell Programming and Scripting

Sed: zero-padding dates (or: convert d/m/yyyy to dd/mm/yyyy)

Hi all I have some pipe-separated data in the form: 5/12/2008 00:00:00|31/1/2009 00:00:00|SOMESTUFF|OTHERSTUFF 12/31/2008 00:00:00|15/1/2009 00:00:00|MORESTUFF|REMAININGSTUFF 1/1/1023 00:00:00|16/5/2047 00:00:00|THEREST|YETMORE I need to zero-pad the single-digit days and months, using... (3 Replies)
Discussion started by: jgrogan
3 Replies

7. Shell Programming and Scripting

Convert DD-MMM-YYYY to MM-DD-YYYY

I have a file which has 100k+ records like this abc,05-JUN-1974,def,lkj,aaa def,11-SEP-1975,ghj,dis,dea I want to convert ex 05-JUN-1974 to 06/05/1974 Please help me with awk script to convert the whole file into MM-DD-YYYY Thank you! (2 Replies)
Discussion started by: nuthalapati
2 Replies

8. Shell Programming and Scripting

converting the date field from dd/mm/yyyy to yyyy/mm/dd

How to convert the date field from dd/mm/yyyy to yyyy/mm/dd in unix my script will generate text file which have two fields one is date and another is name of the server for example this is sample date which I have to sort based on older to newer date the problem is when I found out sort will... (4 Replies)
Discussion started by: pareshan
4 Replies

9. Shell Programming and Scripting

Change Date from dd-mmm-yyyy to mm/dd/yyyy

I want to change a date from format dd-mmm-yyyy to mm/dd/yyyy. Is there a way to do this with sed or do you have to write a case statement to convert JAN to 01? Thanks (9 Replies)
Discussion started by: stringzz
9 Replies

10. Shell Programming and Scripting

How to convert DDMMYYYY to DD MONTH YYYY in Unix

Hi I am having date as a string in DDMMYYYY format(07082008) in a variable say cdate. I want to Convert it into DD Month YYYY format(7 August 2008). Could someone help. Thanks in Advance. (2 Replies)
Discussion started by: rspk_praveen
2 Replies
Login or Register to Ask a Question