Compare two timestamps and print elapsed time


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Compare two timestamps and print elapsed time
# 1  
Old 08-17-2012
Difference between two timestamps and print elapsed time

Hi,
I am unable to Difference between two time stamps in Linux and display the total elapsed time .

Source date: Aug 15, 2012 02:00:03
Target date: Aug 14, 2012 18:00:03

Code:
# based on the forums I am using the below function. Converted dates into this format

Src_dt=20120814180003
Tgt_dt=20120815020003
Total=`expr $Tgt_dt - $Src_dt`
Echo $Total

I am unable to get the proper output. I should get like this (total elapsed time: 08:00:00).

Does Linux having any direct command to difference between two timestamps and giving the total elapsed time,

Any suggestions, greatly appreciated.

Thanks
onesuri

Last edited by onesuri; 08-17-2012 at 03:03 AM..
# 2  
Old 08-17-2012
One way would be to use the special date formatting capabilities of the printf builtin of the kornshell 93:

Code:
#!/bin/ksh93

src=$( printf "%(%s)T\n" 201208141800.03 )
tgt=$( printf "%(%s)T\n" 201208150200.03 )

TZ= printf "%(%T)T\n" '#'$(( tgt - src ))

Output:

Code:
08:00:00

# 3  
Old 08-17-2012
Assumed you are talking of file time stamps, the stat --printf "%X" filename will output seconds since epoch, which can easily subtracted/converted. Use %Y or %Z for file's other timestamps.
# 4  
Old 08-17-2012
Hi,

Thanks for the suggestion,
I have tried the same way but I am getting the below error. I am using the LINUX environment. Do i need to use different format for the below commands.
Code:
Sample.sh: line 5: printf: `(‘: invalid format character
Sample.sh: line 6: printf: `(‘: invalid format character
Sample.sh: line 7: printf: `(‘: invalid format character


Thanks -onesuri

Last edited by Franklin52; 08-17-2012 at 06:28 AM.. Reason: Please use code tags for data and code samples
# 5  
Old 08-17-2012
Quote:
Originally Posted by onesuri
Sample.sh: line 5: printf: `(‘: invalid format character
Sample.sh: line 6: printf: `(‘: invalid format character
Sample.sh: line 7: printf: `(‘: invalid format character
You seem to use the standard printf command. My solution only works with the kornshell 93 and it's builtin printf command.
# 6  
Old 08-17-2012
Please provide the output for the src,tgt and TZ. it will easy to find the relevent command
Code:
src=$( printf "%(%s)T\n" 201208141800.03 )
tgt=$( printf "%(%s)T\n" 201208150200.03 )

TZ= printf "%(%T)T\n" '#'$(( tgt - src ))


Last edited by Franklin52; 08-17-2012 at 06:29 AM.. Reason: Please use code tags for data and code samples
# 7  
Old 08-17-2012
src, tgt and TZ are shell variables, not commands. Look for a command "ksh93" on your system (usually /bin/ksh93). If this command is not present, you have to install the kornshell 93 or find a different approach.

---------- Post updated at 11:04 ---------- Previous update was at 11:00 ----------

Ahh, I think I misunderstood you.

src and tgt will hold the timestamps converted to the internal unix time representation
Code:
src = 1344960003
tgt = 1344988803

TZ is the timezone variable and has to be cleared, so that the correct time difference is printed, because it is actually not a time difference, but a timestamp relative to the first of january, 1970.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Help in : sorting process by their elapsed time: HP-UX

What is the equivalent command of the below linux command would be in hp-ux UNIX95=1 ps -eo pid,start,stime,command Thanks a lot, (1 Reply)
Discussion started by: rveri
1 Replies

2. Shell Programming and Scripting

Time elapsed since script started

Hi I want to know if there is anyway I can find out how long it has been since I started my script or total time it has been since my script is executing. Idea here is I want to check if my script is taking more than 30minutes to execute I want to kill that process. Thanks in advance. (1 Reply)
Discussion started by: dashing201
1 Replies

3. Shell Programming and Scripting

elapsed time

Display the elapsed time $ export data_ini = `date +'%s'`; echo $data_ini 1292417961 $ export data_final = `date +'%s'`; echo $data_final 1292418079 $ ((temps = data_final - data_ini)); echo $temps 118 $ echo $((data_final - data_ini)) #total seconds 118 $ echo $(((data_final... (1 Reply)
Discussion started by: aika
1 Replies

4. Shell Programming and Scripting

Elapsed time in seconds in awk

I am trying to get the ellapsed time in seconds in the body of the awk script. I use unix date to get the time. It works in BEGIN {} but not in the body {} of awk. Any ideas? $ cat a BEGIN { "date +%s" | getline x print x } { "date +%s" | getline y print y } $ echo "one line" |... (3 Replies)
Discussion started by: arturas123
3 Replies

5. Shell Programming and Scripting

Help on Time elapsed?

Hi All, I have 2 variables like SDATE and EDATE. Now for example i ll give you values for the above 2 variables. SDATE=11/08/09 11:22 EDATE=11/09/09 22:33 the values of the above variables are represented like this>>>>>> mm/dd/yy hh:mm Now I want to evaluate total time elapsed... (3 Replies)
Discussion started by: smarty86
3 Replies

6. Shell Programming and Scripting

Need to calculate elapsed time

Hi there, How to calculate the elapsed time in minutes for a particular job run under unix. I tried the following $ ps -efo user,pid,etime,comm,args | grep myscript | grep -v grep | awk -F" " '{print $3}' OUTPUT: 01:02:49 I need to get this output in minutes. Can someone help me... (1 Reply)
Discussion started by: karthickrn
1 Replies

7. Shell Programming and Scripting

Calculate Elapsed Time

I'm looking for the cleanest way to calculate the time elapsed between two times in KSH. In minutes or in hours and minutes if it has been longer than 59 minutes. Here are some random examples: Example result: 25 Minutes or Example result: 1 Hour and 25 Minutes Example time format: ... (5 Replies)
Discussion started by: sysera
5 Replies

8. UNIX for Dummies Questions & Answers

Working out end time from start + elapsed

Hi, I'm writing a script and have become stuck trying to define a variable (COMP) by adding an elapsed time (ELAPSE e.g 00:55) to a start time (START e.g 23:50). Can anybody give me a solution as to how I can get a completion time in hh:mm from the variables above? thanks Richard (4 Replies)
Discussion started by: rik1551
4 Replies

9. Shell Programming and Scripting

Adding Elapsed time

I'm using the Bourne shell and trying to write a script that will add all the time that any particular user has been on the network for. I've used last-h | grep "username" | cut -c 58-62 to get the times. Then I wrote a script that takes the time and converts it into just minutes. Now I... (1 Reply)
Discussion started by: jrdnoland1
1 Replies

10. Programming

Displaying elapsed time...

I am trying to display the amount of time that it took for a command to run. I'm assuming that i have the correct code: ... else { printf("I am a child process and my pid is %d\n", getpid()); cout<<"Parameters are: "<<endl; for... (5 Replies)
Discussion started by: jj1814
5 Replies
Login or Register to Ask a Question