Getting the current time from a website and parsing date

 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Getting the current time from a website and parsing date
# 1  
Old 12-06-2017
Scissors Getting the current time from a website and parsing date

I am trying to work on a script to grab the UTC time from a website

So far I was able to cobble this together.

Code:
curl -s --head web-url | grep ^Date: | sed 's/Date: //g'

Which gives me the result I need.

Code:
Wed, 06 Dec 2017 21:43:50 GMT

What I need to is extract the 21:43:50 and convert it to seconds for the second part of my script.

What is the best approach to doing this? awk or piping to Sed.

Thanks for the feedback.

Last edited by Scott; 12-06-2017 at 05:52 PM.. Reason: Please use code tags
allisterB
# 2  
Old 12-06-2017
Code:
curl ... | awk '/^Date:/ { print $6 }'
21:43:50

What do you want to convert to seconds? Just the time?

Code:
curl ... | awk -F"[ :]" '/^Date:/ { print $7 * 60^2 + $8 * 60 + $9 }'
78230

# 3  
Old 12-06-2017
Thanks for the info, cant I do this for the awk ?


Code:
.... | awk '/^Date:/ { print $6 * 60^2 + $8 * 60 + $9 }'

This seems to work
allisterB
# 4  
Old 12-06-2017
Does it work? Not really. Without a field separator, $6 is the whole time (h:m:s). $6 * 60^2 does give the right answer for the hours (75600 seconds), with a little help from awk, but $8 and $9 are empty fields, so you won't get the minutes or seconds using that. There are a number of ways you can take the time (h:m:s) and split in into its component parts. Changing the field separator is one, the substr function is another, but doing nothing won't give you the right answer.

Without any field separator, your input looks like this:
Code:
$1    $2   $3 $4  $5   $6       $7     $8     $9
Date: Wed, 06 Dec 2017 21:43:50 GMT

# 5  
Old 12-07-2017
Apart from why?, and assuming GNU Date is in your toolkit and assuming a modern bash, ksh or zsh:

Code:
seconds=$((  $(date -u +"(%H*60 + %M)*60 + %S" --date="$(curl -s --head web-url | sed -n 's/^Date: //p')") ))

It may take a little longer than a pure awk route and relies on date understanding the format.

Or how about
Code:
seconds=$(($(curl -s --head web-url | \
             sed -n '/^Date: / s/^.*\([0-9][0-9]\):\([0-9][0-9]\):\([0-9][0-9]\).*$/(\1*60 + \2)*60 + \3/p') ))

(pure sed but still relies on $(()) operators in shell)

Andrew
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Need to substract date with current date and time

I have below file which contain the date in column 3,4,5 12345 open 10/10/13 10:08 PM 3 application is in java 67899 open 12/10/13 2:31 AM 2 apps can be reach 23456 open 11/9/13 2:31 AM 4 java is OK 65432 open 12/10/13 10:07 PM 9 we are... (1 Reply)
Discussion started by: vijay_rajni
1 Replies

2. Shell Programming and Scripting

Add current date and time

i have file 1.txt asdas|csada|13|03|10|04|23|A1|canberra sdasd|sfdsf|13|04|26|23|28|A1|sydney i want to add today's date and time in the end of each row expected output asdas|csada|13|03|10|04|23|A1|canberra|130430|1358 sdasd|sfdsf|13|04|26|23|28|A1|sydney|130430|1358 todays date... (10 Replies)
Discussion started by: radius
10 Replies

3. Shell Programming and Scripting

Displaying current date time of EDT in IST time

Hi Folks, My server time is in EDT. And i am sending automated mails from that server in which i need to display the current date time as per IST (GMT+5:30). Please advice how to display the date time as per IST. IST time leads 9:30 mins to EDT. and i wrote something like below. ... (6 Replies)
Discussion started by: Showdown
6 Replies

4. Shell Programming and Scripting

[Solved] How to tar data along with current system date and time.?

Hi all, Following is my small script:- #!/bin/ksh for i in `cat /users/jack/mainfile-dr.txt` do sudo cp -r $i /users/jack/DR01/. done cd /users/jack/DR01/ sudo tar cvf system1-DR.tar * scp system1-DR.tar backupserver:/DRFiles/system1 sudo rm -rf system1-DR.tar In this script I... (10 Replies)
Discussion started by: manalisharmabe
10 Replies

5. UNIX for Dummies Questions & Answers

Adding hours and minutes to current date (Only to date not to time)

Hi, I want to add some hours and minutes to the current date. For example, if the current date is "July 16, 2012 15:20", i want to add 5 hours 30 minutes to "July 16, 2012 00:00" not to "July 16, 2012 15:20". Please help. Thanks! (4 Replies)
Discussion started by: manojgarg
4 Replies

6. Shell Programming and Scripting

How far is given date from current time?

give a date and time: Jun 12 21:05:16 06-12-2012 21:05:16 2012/06/12 21:05:16 How can i subtract these dates and times from the current date and time and get back the difference in seconds? a one liner like: echo "Jun 12 21:05:16" | some perl/awk programming 90900s (2 Replies)
Discussion started by: SkySmart
2 Replies

7. Shell Programming and Scripting

How to find the create time of a file if current date is in next month

Hi All, I want to find the time diffrence between currnt time and "abc.txt" file create time. I have solve that but if the abc.txt file created last month then is there any process to find the difftent? Exp: Create time of abc.txt is "Apr 14 06:48" and currect date is "May 17 23:47".... (1 Reply)
Discussion started by: priyankak
1 Replies

8. Shell Programming and Scripting

Prefix the current date and time to the output of ps

Hi, I need to write a script, that will take the current date, time, and the output from # ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm and spit it to a file, so it'll look like this... PID TID CLS RTPRIO NI PRI PSR %CPU STAT WCHAN COMMAND 1 1 TS... (2 Replies)
Discussion started by: Bloke
2 Replies

9. Shell Programming and Scripting

Get date and time for past 1 hour from current date

Hi, I need to get the date and time for past 1 hour from the current date. Anyone know how to do so? Thanks (5 Replies)
Discussion started by: spch2o
5 Replies

10. Shell Programming and Scripting

param as current date+time

Hi All, I need to pass param on aix "errpt -a -s MMDDHHMMYY -e MMDDHHMMYY". How do I read the date+time on the system and pass it as parameter? I need also the -s as previous day and the -e as current day. Thanks, itik (1 Reply)
Discussion started by: itik
1 Replies
Login or Register to Ask a Question