get unix timestamp


 
Thread Tools Search this Thread
Operating Systems AIX get unix timestamp
# 1  
Old 07-17-2007
get unix timestamp

How can I get the unix timestamp from AIX?
# 2  
Old 07-17-2007
Consider the following perl script :

Code:
#!/usr/bin/perl
#
# Accepts date input as Mon/dd/yyyy hh:mm:ss and returns unix timestamp (epoch)

use Time::Local;

my $d = $ARGV[0];
my $t = $ARGV[1];
my $m = "";

@d = split /\//, $d;
@t = split /:/, $t;

if ( $d[0] eq "Jan" ) { $m = 0 }
elsif ( $d[0] eq "Feb" ) { $m = 1 }
elsif ( $d[0] eq "Mar" ) { $m = 2 }
elsif ( $d[0] eq "Apr" ) { $m = 3 }
elsif ( $d[0] eq "May" ) { $m = 4 }
elsif ( $d[0] eq "Jun" ) { $m = 5 }
elsif ( $d[0] eq "Jul" ) { $m = 6 }
elsif ( $d[0] eq "Aug" ) { $m = 7 }
elsif ( $d[0] eq "Sep" ) { $m = 8 }
elsif ( $d[0] eq "Oct" ) { $m = 9 }
elsif ( $d[0] eq "Nov" ) { $m = 10 }
elsif ( $d[0] eq "Dec" ) { $m = 11 };

$time = timelocal($t[2], $t[1], $t[0], $d[1], $m, $d[2]);

print "$time\n";

usage :

Quote:
your-script-name Jul/17/2007 05:32:11
The output is :
Quote:
1184675531
HTH.
# 3  
Old 07-17-2007
Some of my servers don't have Perl installed, I need a SH solution.
# 4  
Old 07-17-2007
Quote:
Originally Posted by psimoes79
Some of my servers don't have Perl installed, I need a SH solution.
Do you have the stat utility on your machine ? Doesn't the date utility in AIX have anything similiar ?
# 5  
Old 07-17-2007
Quote:
Originally Posted by sysgate
Consider the following perl script :

Code:
#!/usr/bin/perl
#
# Accepts date input as Mon/dd/yyyy hh:mm:ss and returns unix timestamp (epoch)

use Time::Local;

my $d = $ARGV[0];
my $t = $ARGV[1];
my $m = "";

@d = split /\//, $d;
@t = split /:/, $t;

if ( $d[0] eq "Jan" ) { $m = 0 }
elsif ( $d[0] eq "Feb" ) { $m = 1 }
elsif ( $d[0] eq "Mar" ) { $m = 2 }
elsif ( $d[0] eq "Apr" ) { $m = 3 }
elsif ( $d[0] eq "May" ) { $m = 4 }
elsif ( $d[0] eq "Jun" ) { $m = 5 }
elsif ( $d[0] eq "Jul" ) { $m = 6 }
elsif ( $d[0] eq "Aug" ) { $m = 7 }
elsif ( $d[0] eq "Sep" ) { $m = 8 }
elsif ( $d[0] eq "Oct" ) { $m = 9 }
elsif ( $d[0] eq "Nov" ) { $m = 10 }
elsif ( $d[0] eq "Dec" ) { $m = 11 };

$time = timelocal($t[2], $t[1], $t[0], $d[1], $m, $d[2]);

print "$time\n";

usage :



The output is :

HTH.
why so complicated?

Code:
perl -e "print time();"

does the same....
# 6  
Old 07-17-2007
Quote:
Originally Posted by vino
Do you have the stat utility on your machine ? Doesn't the date utility in AIX have anything similiar ?
I don't have the stat command, also the date command doesn't have the %s option or something similar like the date in Linux distros.
# 7  
Old 07-17-2007
Here's a korn shell way to do it. You'll have to add your timezone info near the bottom. I live in CST zone so I don't care about the others. Smilie

Code:
##*******************************************************************************
## Script       epoch
## Purpose      Take date in formatted string as an argument and coverts it
##              into epoch time (seconds since 1/1/1970)
## Usage        ./epoch Aug 25 23:59:59 2007 GMT
##===============================================================================
## History
## 2007/01/15  kah00na    Creation of script (some code from the internet)
##*******************************************************************************

year=$4
month=$1
day=$2
hour=$(echo $3 | cut -d: -f1)
min=$(echo $3 | cut -d: -f2)
sec=$(echo $3 | cut -d: -f3)
tz=$5

# Convert month to number
if [ $month = "Jan" ]; then
        month=1
elif [ $month = "Feb" ]; then
        month=2
elif [ $month = "Mar" ]; then
        month=3
elif [ $month = "Apr" ]; then
        month=4
elif [ $month = "May" ]; then
        month=5
elif [ $month = "Jun" ]; then
        month=6
elif [ $month = "Jul" ]; then
        month=7
elif [ $month = "Aug" ]; then
        month=8
elif [ $month = "Sep" ]; then
        month=9
elif [ $month = "Oct" ]; then
        month=10
elif [ $month = "Nov" ]; then
        month=11
elif [ $month = "Dec" ]; then
        month=12
fi

# leap days in past years
leapdays=$(( (year - 1969)/4 ))

# Is this year a leap year?
leap=$(( year % 4 == 0 ))

# Days in each month this year.
mdays[1]=31
mdays[2]=$((28+leap))
mdays[3]=31
mdays[4]=30
mdays[5]=31
mdays[6]=30
mdays[7]=31
mdays[8]=31
mdays[9]=30
mdays[10]=31
mdays[11]=30
mdays[12]=31

# days since the epoch, not counting earlier months this year
daycount=$(( (year - 1970) * 365 + leapdays + day - 1))

# Step through earlier months this year and add the days
m=$((month - 1))
while [ $m -ge 1 ]; do
        #echo "month=$m"
        daycount=$((daycount+${mdays[$m]} ))
        m=$((m-1))
done

# Now the seconds
epoch=$(( ( (daycount * 24 + hour) * 60 + min) * 60 + sec ))

# Add the time zones that apply to you
case "$tz" in
        #GMT) epoch=$((epoch + 0));;
        #EST) epoch=$((epoch + 18000));;
        CST) epoch=$((epoch + 21600));;
        #GMT) epoch=$((epoch + 21600));;
        #*)   epoch="ERROR: unrecognized on time zone";;
esac
echo "${epoch}"

EDIT: The "CODE" tags make the code look better. Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

UNIX timestamp

Hi , I have files in s3 buckect under this directory(unix timestamp).I want to get the files on daily bases based batch date which is current unix date.Any help how to convert my unix date to unixtimestamp and get the files to local system.Any help would be great aws s3 ls... (18 Replies)
Discussion started by: mohan705
18 Replies

2. Shell Programming and Scripting

AIX : Need to convert UNIX Timestamp to normal timestamp

Hello , I am working on AIX. I have to convert Unix timestamp to normal timestamp. Below is the file. The Unix timestamp will always be preceded by EFFECTIVE_TIME as first field as shown and there could be multiple EFFECTIVE_TIME in the file : 3.txt Contents of... (6 Replies)
Discussion started by: rahul2662
6 Replies

3. Shell Programming and Scripting

Check if a string is a valid timestamp in UNIX.

Hi all, I have date and time value in a string, I want to check if it is a valid date and time. Need help on this. Thanks (7 Replies)
Discussion started by: Pratiksha Mehra
7 Replies

4. Shell Programming and Scripting

TimeStamp to unix time

Hi, is there a way to get unix time from timestamp using date function in unix/ OS: SunOS 5.10 input : 2012-07-26 15:00:00 output: 1343314800Thanks in advance (6 Replies)
Discussion started by: sol_nov
6 Replies

5. UNIX for Dummies Questions & Answers

Unix timestamp to readable date

How would I convert a unix timestamp such as "1232144092" to a readable date such as "1/16/2009 10:14:28 PM" ? I thought I could use date, but I don't think so now.. Any help would be great!! (4 Replies)
Discussion started by: Rhije
4 Replies

6. UNIX for Advanced & Expert Users

AIX/awk date to unix timestamp

Hello, I am inside a awk script on AIX, I am feeding to awk ls -luNR i need to convert ls -u time format "month day h:m/yr" to Unix epoch time, POSIX time, or aka unix timestamp I do not have strftime funk in my awk, and i have to do this fast meaning that I cannot do a system call in the... (1 Reply)
Discussion started by: nullwhat
1 Replies

7. AIX

unix timestamp

hi, i have heard that date and time stamp are stored somewhere in unix as an interger. suppose May 20 07:05:59 is stored as 12342234 can anyone tell me where to find this integer. (9 Replies)
Discussion started by: ali560045
9 Replies

8. Programming

converting unix timestamp into readable format using c++

hi everyone, im new here and am in desperate need of help. I want to convert my 32 bit unix time stamp ' 45d732f6' into a readable format (Sat, 17 February 2007 16:53:10 UTC) using c++. I have looked around the interent but i just cant make sense of anything. All examples i can find just... (3 Replies)
Discussion started by: uselessprog
3 Replies

9. UNIX for Advanced & Expert Users

FTP from windows to Unix maintaining timestamp

Hi, Is it possible to Ftp the files from Windows to Unix while maintaining their timestamp Gaurav (1 Reply)
Discussion started by: gauravgoel
1 Replies

10. UNIX for Dummies Questions & Answers

display the timestamp of a server UNIX

I can't find the command shell UNIX to display the timestamp of the current date. It's not an option of the commande date. (3 Replies)
Discussion started by: nicolas
3 Replies
Login or Register to Ask a Question