• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 4612
  • Last Modified:

I need a one-line UNIX shel command to add or subtract seconds or hours from a date.

I need a one-line command to add or subtract seconds or hours from a date.  I have the pieces but I can't put them together in a one-line command.  I have to build this command on the fly in my EDI mapper so I can't write and execute a regular multi-line script from a .sh file.  It all has to fit on one line and called in one shot.  

Current time = 20081119 14:22

date +%s
1227122553

And then I can calculate a time 1 hour ago
expr 1227122553 - 3600
1227118953

and them put it back together as a date in proper format

date -d @1227118953 '+%Y%m%d %H:%M'
20081119 13:22


Now how do I string this into a one-line command to get the date, add/subtract x amount of seconds and then convert back to date format (ie: 20081119 12:21:14)?    

Something like this but this does't work - "date -d @ {expr date+%s - 3600} '+%Y%m%d %H:%M''"

0
INAUSA
Asked:
INAUSA
1 Solution
 
TintinCommented:

If you simply want the time 1 hour ago, you can do

date --date '1 hour ago' +'%Y%m%d %H:%M'
0
 
woolmilkporcCommented:
Hi,
works in ksh:

date -d @$(($(date  '+%s')-3600)) '+%Y%m%d %H:%M'

wmp

0

Featured Post

Upgrade your Question Security!

Add Premium security features to your question to ensure its privacy or anonymity. Learn more about your ability to control Question Security today.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now