GNU Info

Info Node: (sh-utils.info)Examples of date

(sh-utils.info)Examples of date


Prev: Options for date Up: date invocation
Enter node , (file) or (file)node

Examples of `date'
------------------

   Here are a few examples.  Also see the documentation for the `-d'
option in the previous section.

   * To print the date of the day before yesterday:

          date --date='2 days ago'

   * To print the date of the day three months and one day hence:
          date --date='3 months 1 day'

   * To print the day of year of Christmas in the current year:
          date --date='25 Dec' +%j

   * To print the current full month name and the day of the month:
          date '+%B %d'

     But this may not be what you want because for the first nine days
     of the month, the `%d' expands to a zero-padded two-digit field,
     for example `date -d 1may '+%B %d'' will print `May 01'.

   * To print a date without the leading zero for one-digit days of the
     month, you can use the (GNU extension) `-' modifier to suppress
     the padding altogether.
          date -d=1may '+%B %-d'

   * To print the current date and time in the format required by many
     non-GNU versions of `date' when setting the system clock:
          date +%m%d%H%M%Y.%S

   * To set the system clock forward by two minutes:
          date --set='+2 minutes'

   * To print the date in the format specified by RFC-822, use `date
     --rfc'.  I just did and saw this:

          Mon, 25 Mar 1996 23:34:17 -0600

   * To convert a date string to the number of seconds since the epoch
     (which is 1970-01-01 00:00:00 UTC), use the `--date' option with
     the `%s' format.  That can be useful in sorting and/or graphing
     and/or comparing data by date.  The following command outputs the
     number of the seconds since the epoch for the time one second later
     than the epoch, but in a time zone five hours later (Cambridge,
     Massachusetts), thus a total of five hours and one second after
     the epoch:

          date --date='1970-01-01 00:00:01 UTC +5 hours' +%s
          18001

     Suppose you had _not_ specified time zone information in the
     example above.  Then, `date' would have used your computer's idea
     of the time zone when interpreting the string.  Here's what you
     would get if you were in Greenwich, England:

          # local time zone used
          date --date='1970-01-01 00:00:01' +%s
          1

   * If you're sorting or graphing dated data, your raw date values may
     be represented as seconds since the epoch.  But few people can
     look at the date `946684800' and casually note "Oh, that's the
     first second of the year 2000."

          date --date='2000-01-01 UTC' +%s
          946684800

     To convert such an unwieldy number of seconds back to a more
     readable form, use a command like this:

          date -d '1970-01-01 946684800 sec' +"%Y-%m-%d %T %z"
          2000-01-01 00:00:00 +0000



automatically generated by info2www version 1.2.2.9