I am using the "date" command to perform some simple date arithmetic. The "-d" option lets me do this, but the man pages are very unclear on what is valid data. What are all the accepted options, and how do I figure that out?
I can use this command to determine the date 5 minutes ago: date -d "5-minutes-ago" +%H:%M
This command also works: date -d "-5 minutes" +%H:%M
I stumbled upon these options by accident/frustration. I don't see a "minutes-ago" or a "-X minutes" option listed in the documentation.
I would use Perl to do the arithmetic, but unfortunately I cannot install any additional Perl packages.
There are a few relative date strings.
minutes ago
works (vs.minutes-ago
with the dash).There are quite a few examples on the coreutils
date
info pages:http://www.gnu.org/software/coreutils/manual/html_node/Date-input-formats.html
A tricky one is the UNIX timestamp format (this is useful if you are managing a textfile database -- you want to keep your date/time data as UNIX timestamps so you can perform interger math on them)
The at-sign tells the date command that the number is a UNIX timestamp
You don't need to install additional packages to handle date math in Perl; just use time() to get an epoch offset, and localtime() to convert it to a useful date data structure.