]>
Commit | Line | Data |
---|---|---|
e1a085ba | 1 | .\"- |
44bd5ea7 A |
2 | .\" Copyright (c) 1980, 1990, 1993 |
3 | .\" The Regents of the University of California. All rights reserved. | |
4 | .\" | |
5 | .\" This code is derived from software contributed to Berkeley by | |
6 | .\" the Institute of Electrical and Electronics Engineers, Inc. | |
7 | .\" | |
8 | .\" Redistribution and use in source and binary forms, with or without | |
9 | .\" modification, are permitted provided that the following conditions | |
10 | .\" are met: | |
11 | .\" 1. Redistributions of source code must retain the above copyright | |
12 | .\" notice, this list of conditions and the following disclaimer. | |
13 | .\" 2. Redistributions in binary form must reproduce the above copyright | |
14 | .\" notice, this list of conditions and the following disclaimer in the | |
15 | .\" documentation and/or other materials provided with the distribution. | |
44bd5ea7 A |
16 | .\" 4. Neither the name of the University nor the names of its contributors |
17 | .\" may be used to endorse or promote products derived from this software | |
18 | .\" without specific prior written permission. | |
19 | .\" | |
20 | .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | |
21 | .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
22 | .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
23 | .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | |
24 | .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |
25 | .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |
26 | .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |
27 | .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |
28 | .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |
29 | .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |
30 | .\" SUCH DAMAGE. | |
31 | .\" | |
32 | .\" @(#)date.1 8.3 (Berkeley) 4/28/95 | |
e1a085ba | 33 | .\" $FreeBSD: src/bin/date/date.1,v 1.72 2005/02/13 22:25:09 ru Exp $ |
44bd5ea7 | 34 | .\" |
e1a085ba | 35 | .Dd August 16, 2007 |
44bd5ea7 A |
36 | .Dt DATE 1 |
37 | .Os | |
38 | .Sh NAME | |
39 | .Nm date | |
40 | .Nd display or set date and time | |
41 | .Sh SYNOPSIS | |
42 | .Nm | |
e1a085ba | 43 | .Op Fl ju |
44bd5ea7 | 44 | .Op Fl r Ar seconds |
e1a085ba A |
45 | .Oo |
46 | .Fl v | |
47 | .Sm off | |
48 | .Op Cm + | - | |
49 | .Ar val Op Ar ymwdHMS | |
50 | .Sm on | |
51 | .Oc | |
52 | .Ar ... | |
53 | .Op Cm + Ns Ar output_fmt | |
54 | .Nm | |
55 | .Op Fl jnu | |
56 | .Sm off | |
57 | .Op Oo Oo Ar mm Oc Ar dd Oc Ar HH | |
58 | .Ar MM Oo Oo Ar cc Oc Ar yy Oc Op Ar .ss | |
59 | .Sm on | |
60 | .Nm | |
61 | .Op Fl jnu | |
62 | .Fl f Ar input_fmt new_date | |
63 | .Op Cm + Ns Ar output_fmt | |
daf87b50 | 64 | .Nm |
e1a085ba A |
65 | .Op Fl d Ar dst |
66 | .Op Fl t Ar minutes_west | |
44bd5ea7 | 67 | .Sh DESCRIPTION |
e1a085ba | 68 | When invoked without arguments, the |
44bd5ea7 | 69 | .Nm |
e1a085ba A |
70 | utility displays the current date and time. |
71 | Otherwise, depending on the options specified, | |
72 | .Nm | |
73 | will set the date and time or print it in a user-defined way. | |
74 | .Pp | |
75 | The | |
76 | .Nm | |
77 | utility displays the date and time read from the kernel clock. | |
78 | When used to set the date and time, | |
79 | both the kernel clock and the hardware clock are updated. | |
80 | .Pp | |
81 | Only the superuser may set the date, | |
82 | and if the system securelevel (see | |
83 | .Xr securelevel 8 ) | |
84 | is greater than 1, | |
85 | the time may not be changed by more than 1 second. | |
44bd5ea7 A |
86 | .Pp |
87 | The options are as follows: | |
88 | .Bl -tag -width Ds | |
e1a085ba A |
89 | .It Fl d Ar dst |
90 | Set the kernel's value for daylight saving time. | |
91 | If | |
92 | .Ar dst | |
93 | is non-zero, future calls | |
94 | to | |
95 | .Xr gettimeofday 2 | |
96 | will return a non-zero for | |
97 | .Fa tz_dsttime . | |
98 | .It Fl f | |
99 | Use | |
100 | .Ar input_fmt | |
101 | as the format string to parse the | |
102 | .Ar new_date | |
103 | provided rather than using the default | |
104 | .Sm off | |
105 | .Oo Oo Oo | |
106 | .Ar mm Oc | |
107 | .Ar dd Oc | |
108 | .Ar HH Oc | |
109 | .Ar MM | |
110 | .Oo Oo | |
111 | .Ar cc Oc | |
112 | .Ar yy Oc Oo | |
113 | .Ar .ss Oc | |
114 | .Sm on | |
115 | format. | |
116 | Parsing is done using | |
117 | .Xr strptime 3 . | |
118 | .It Fl j | |
119 | Do not try to set the date. | |
120 | This allows you to use the | |
121 | .Fl f | |
122 | flag in addition to the | |
123 | .Cm + | |
124 | option to convert one date format to another. | |
44bd5ea7 | 125 | .It Fl n |
e1a085ba | 126 | By default, if the |
44bd5ea7 | 127 | .Xr timed 8 |
e1a085ba | 128 | daemon is running, |
44bd5ea7 | 129 | .Nm |
e1a085ba | 130 | sets the time on all of the machines in the local group. |
44bd5ea7 A |
131 | The |
132 | .Fl n | |
e1a085ba A |
133 | option suppresses this behavior and causes the time to be set only on the |
134 | current machine. | |
135 | .It Fl r Ar seconds | |
136 | Print the date and time represented by | |
137 | .Ar seconds , | |
138 | where | |
44bd5ea7 | 139 | .Ar seconds |
e1a085ba A |
140 | is the number of seconds since the Epoch |
141 | (00:00:00 UTC, January 1, 1970; | |
142 | see | |
143 | .Xr time 3 ) , | |
144 | and can be specified in decimal, octal, or hex. | |
145 | .It Fl t Ar minutes_west | |
146 | Set the system's value for minutes west of | |
147 | .Tn GMT . | |
148 | .Ar minutes_west | |
149 | specifies the number of minutes returned in | |
150 | .Fa tz_minuteswest | |
151 | by future calls to | |
152 | .Xr gettimeofday 2 . | |
44bd5ea7 A |
153 | .It Fl u |
154 | Display or set the date in | |
155 | .Tn UTC | |
e1a085ba A |
156 | (Coordinated Universal) time. |
157 | .It Fl v | |
158 | Adjust (i.e., take the current date and display the result of the | |
159 | adjustment; not actually set the date) the second, minute, hour, month | |
160 | day, week day, month or year according to | |
161 | .Ar val . | |
162 | If | |
163 | .Ar val | |
164 | is preceded with a plus or minus sign, | |
165 | the date is adjusted forwards or backwards according to the remaining string, | |
166 | otherwise the relevant part of the date is set. | |
167 | The date can be adjusted as many times as required using these flags. | |
168 | Flags are processed in the order given. | |
169 | .Pp | |
170 | When setting values | |
171 | (rather than adjusting them), | |
172 | seconds are in the range 0-59, minutes are in the range 0-59, hours are | |
173 | in the range 0-23, month days are in the range 1-31, week days are in the | |
174 | range 0-6 (Sun-Sat), | |
175 | months are in the range 1-12 (Jan-Dec) | |
176 | and years are in the range 80-38 or 1980-2038. | |
177 | .Pp | |
178 | If | |
179 | .Ar val | |
180 | is numeric, one of either | |
181 | .Ar y , | |
182 | .Ar m , | |
183 | .Ar w , | |
184 | .Ar d , | |
185 | .Ar H , | |
186 | .Ar M | |
187 | or | |
188 | .Ar S | |
189 | must be used to specify which part of the date is to be adjusted. | |
190 | .Pp | |
191 | The week day or month may be specified using a name rather than a | |
192 | number. | |
193 | If a name is used with the plus | |
194 | (or minus) | |
195 | sign, the date will be put forwards | |
196 | (or backwards) | |
197 | to the next | |
198 | (previous) | |
199 | date that matches the given week day or month. | |
200 | This will not adjust the date, | |
201 | if the given week day or month is the same as the current one. | |
202 | .Pp | |
203 | When a date is adjusted to a specific value or in units greater than hours, | |
204 | daylight savings time considerations are ignored. | |
205 | Adjustments in units of hours or less honor daylight saving time. | |
206 | So, assuming the current date is March 26, 0:30 and that the DST adjustment | |
207 | means that the clock goes forward at 01:00 to 02:00, using | |
208 | .Fl v No +1H | |
209 | will adjust the date to March 26, 2:30. | |
210 | Likewise, if the date is October 29, 0:30 and the DST adjustment means that | |
211 | the clock goes back at 02:00 to 01:00, using | |
212 | .Fl v No +3H | |
213 | will be necessary to reach October 29, 2:30. | |
214 | .Pp | |
215 | When the date is adjusted to a specific value that does not actually exist | |
216 | (for example March 26, 1:30 BST 2000 in the Europe/London timezone), | |
217 | the date will be silently adjusted forwards in units of one hour until it | |
218 | reaches a valid time. | |
219 | When the date is adjusted to a specific value that occurs twice | |
220 | (for example October 29, 1:30 2000), | |
221 | the resulting timezone will be set so that the date matches the earlier of | |
222 | the two times. | |
223 | .Pp | |
224 | Adjusting the date by months is inherently ambiguous because | |
225 | a month is a unit of variable length depending on the current date. | |
226 | This kind of date adjustment is applied in the most intuitive way. | |
227 | First of all, | |
228 | .Nm | |
229 | tries to preserve the day of the month. | |
230 | If it is impossible because the target month is shorter than the present one, | |
231 | the last day of the target month will be the result. | |
232 | For example, using | |
233 | .Fl v No +1m | |
234 | on May 31 will adjust the date to June 30, while using the same option | |
235 | on January 30 will result in the date adjusted to the last day of February. | |
236 | This approach is also believed to make the most sense for shell scripting. | |
237 | Nevertheless, be aware that going forth and back by the same number of | |
238 | months may take you to a different date. | |
239 | .Pp | |
240 | Refer to the examples below for further details. | |
44bd5ea7 A |
241 | .El |
242 | .Pp | |
e1a085ba A |
243 | An operand with a leading plus |
244 | .Pq Sq + | |
245 | sign signals a user-defined format string | |
246 | which specifies the format in which to display the date and time. | |
247 | The format string may contain any of the conversion specifications | |
248 | described in the | |
44bd5ea7 A |
249 | .Xr strftime 3 |
250 | manual page, as well as any arbitrary text. | |
e1a085ba A |
251 | A newline |
252 | .Pq Ql \en | |
253 | character is always output after the characters specified by | |
44bd5ea7 | 254 | the format string. |
e1a085ba A |
255 | The format string for the default display is |
256 | .Dq +%+ . | |
44bd5ea7 A |
257 | .Pp |
258 | If an operand does not have a leading plus sign, it is interpreted as | |
259 | a value for setting the system's notion of the current date and time. | |
260 | The canonical representation for setting the date and time is: | |
261 | .Pp | |
262 | .Bl -tag -width Ds -compact -offset indent | |
263 | .It Ar cc | |
e1a085ba A |
264 | Century |
265 | (either 19 or 20) | |
266 | prepended to the abbreviated year. | |
44bd5ea7 | 267 | .It Ar yy |
e1a085ba A |
268 | Year in abbreviated form |
269 | (e.g., 89 for 1989, 06 for 2006). | |
44bd5ea7 | 270 | .It Ar mm |
e1a085ba | 271 | Numeric month, a number from 1 to 12. |
44bd5ea7 | 272 | .It Ar dd |
e1a085ba A |
273 | Day, a number from 1 to 31. |
274 | .It Ar HH | |
275 | Hour, a number from 0 to 23. | |
276 | .It Ar MM | |
277 | Minutes, a number from 0 to 59. | |
44bd5ea7 | 278 | .It Ar ss |
e1a085ba A |
279 | Seconds, a number from 0 to 61 |
280 | (59 plus a maximum of two leap seconds). | |
44bd5ea7 A |
281 | .El |
282 | .Pp | |
283 | Everything but the minutes is optional. | |
284 | .Pp | |
e1a085ba A |
285 | Time changes for Daylight Saving Time, standard time, leap seconds, |
286 | and leap years are handled automatically. | |
287 | .Sh ENVIRONMENT | |
1c4c78a5 | 288 | The following environment variables affect the execution of |
e1a085ba A |
289 | .Nm : |
290 | .Bl -tag -width Ds | |
1c4c78a5 A |
291 | .It Ev TZ |
292 | The timezone to use when displaying dates. | |
e1a085ba A |
293 | The normal format is a pathname relative to |
294 | .Pa /usr/share/zoneinfo . | |
295 | For example, the command | |
296 | .Dq TZ=America/Los_Angeles date | |
297 | displays the current time in California. | |
1c4c78a5 A |
298 | See |
299 | .Xr environ 7 | |
300 | for more information. | |
301 | .El | |
302 | .Sh FILES | |
303 | .Bl -tag -width /var/log/messages -compact | |
1c4c78a5 | 304 | .It Pa /var/log/messages |
e1a085ba | 305 | record of the user setting the time |
1c4c78a5 | 306 | .El |
e1a085ba A |
307 | .Sh EXIT STATUS |
308 | The | |
309 | .Nm | |
310 | utility exits 0 on success, 1 if unable to set the date, and 2 | |
311 | if able to set the local date, but unable to set it globally. | |
44bd5ea7 A |
312 | .Sh EXAMPLES |
313 | The command: | |
e1a085ba A |
314 | .Pp |
315 | .Dl "date ""+DATE: %Y-%m-%d%nTIME: %H:%M:%S""" | |
44bd5ea7 A |
316 | .Pp |
317 | will display: | |
318 | .Bd -literal -offset indent | |
e1a085ba | 319 | DATE: 1987-11-21 |
44bd5ea7 A |
320 | TIME: 13:36:16 |
321 | .Ed | |
322 | .Pp | |
e1a085ba A |
323 | In the Europe/London timezone, the command: |
324 | .Pp | |
325 | .Dl "date -v1m -v+1y" | |
326 | .Pp | |
327 | will display: | |
328 | .Pp | |
329 | .Dl "Sun Jan 4 04:15:24 GMT 1998" | |
330 | .Pp | |
331 | where it is currently | |
332 | .Li "Mon Aug 4 04:15:24 BST 1997" . | |
333 | .Pp | |
334 | The command: | |
335 | .Pp | |
336 | .Dl "date -v1d -v3m -v0y -v-1d" | |
337 | .Pp | |
338 | will display the last day of February in the year 2000: | |
339 | .Pp | |
340 | .Dl "Tue Feb 29 03:18:00 GMT 2000" | |
341 | .Pp | |
342 | So will do the command: | |
343 | .Pp | |
344 | .Dl "date -v30d -v3m -v0y -v-1m" | |
345 | .Pp | |
346 | because there is no such date as the 30th of February. | |
347 | .Pp | |
44bd5ea7 | 348 | The command: |
e1a085ba A |
349 | .Pp |
350 | .Dl "date -v1d -v+1m -v-1d -v-fri" | |
351 | .Pp | |
352 | will display the last Friday of the month: | |
353 | .Pp | |
354 | .Dl "Fri Aug 29 04:31:11 BST 1997" | |
355 | .Pp | |
356 | where it is currently | |
357 | .Li "Mon Aug 4 04:31:11 BST 1997" . | |
358 | .Pp | |
359 | The command: | |
360 | .Pp | |
361 | .Dl "date 0613162785" | |
44bd5ea7 A |
362 | .Pp |
363 | sets the date to | |
364 | .Dq Li "June 13, 1985, 4:27 PM" . | |
365 | .Pp | |
ddb4a88b | 366 | .Dl "date ""+%m%d%H%M%Y.%S""" |
e1a085ba A |
367 | .Pp |
368 | may be used on one machine to print out the date | |
369 | suitable for setting on another. | |
e1a085ba | 370 | .Pp |
44bd5ea7 | 371 | The command: |
e1a085ba A |
372 | .Pp |
373 | .Dl "date 1432" | |
44bd5ea7 A |
374 | .Pp |
375 | sets the time to | |
376 | .Li "2:32 PM" , | |
377 | without modifying the date. | |
44bd5ea7 | 378 | .Pp |
e1a085ba A |
379 | Finally the command: |
380 | .Pp | |
381 | .Dl "date -j -f ""%a %b %d %T %Z %Y"" ""`date`"" ""+%s""" | |
382 | .Pp | |
383 | can be used to parse the output from | |
384 | .Nm | |
385 | and express it in Epoch time. | |
386 | .Sh DIAGNOSTICS | |
44bd5ea7 A |
387 | Occasionally, when |
388 | .Xr timed 8 | |
e1a085ba A |
389 | synchronizes the time on many hosts, the setting of a new time value may |
390 | require more than a few seconds. | |
44bd5ea7 A |
391 | On these occasions, |
392 | .Nm | |
393 | prints: | |
394 | .Ql Network time being set . | |
395 | The message | |
396 | .Ql Communication error with timed | |
397 | occurs when the communication | |
398 | between | |
399 | .Nm | |
e1a085ba A |
400 | and |
401 | .Xr timed 8 | |
402 | fails. | |
1c4c78a5 | 403 | .Sh LEGACY SYNOPSIS |
e1a085ba | 404 | As above, except for the second line, which is: |
1c4c78a5 | 405 | .Pp |
e1a085ba A |
406 | .Nm |
407 | .Op Fl jnu | |
408 | .Sm off | |
409 | .Op Oo Oo Oo Oo Ar cc Oc Ar yy Oc Ar mm Oc Ar dd Oc Ar HH | |
410 | .Ar MM Op Ar .ss | |
411 | .Sm on | |
1c4c78a5 | 412 | .Sh LEGACY DIAGNOSTICS |
e1a085ba A |
413 | When invoked in legacy mode, the following exit values are returned: |
414 | .Bl -tag -width X -compact | |
415 | .It 0 | |
416 | The date was written successfully | |
417 | .It 1 | |
418 | Unable to set the date | |
419 | .It 2 | |
420 | Able to set the local date, but unable to set it globally | |
421 | .El | |
ddb4a88b A |
422 | .Pp |
423 | For more information about legacy mode, see | |
424 | .Xr compat 5 . | |
1c4c78a5 A |
425 | .Sh SEE ALSO |
426 | .Xr gettimeofday 2 , | |
427 | .Xr strftime 3 , | |
e1a085ba A |
428 | .Xr strptime 3 , |
429 | .Xr utmpx 5 , | |
1c4c78a5 A |
430 | .Xr timed 8 |
431 | .Rs | |
432 | .%T "TSP: The Time Synchronization Protocol for UNIX 4.3BSD" | |
433 | .%A R. Gusella | |
434 | .%A S. Zatti | |
435 | .Re | |
44bd5ea7 A |
436 | .Sh STANDARDS |
437 | The | |
438 | .Nm | |
e1a085ba | 439 | utility is expected to be compatible with |
44bd5ea7 | 440 | .St -p1003.2 . |
e1a085ba A |
441 | .Sh HISTORY |
442 | A | |
443 | .Nm | |
444 | command appeared in | |
445 | .At v1 . |