Copyright (C) 2000-2012 |
GNU Info (sh-utils.info)Examples of dateExamples 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 |