]>
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 | |
71aad674 | 33 | .\" $FreeBSD$ |
44bd5ea7 | 34 | .\" |
71aad674 | 35 | .Dd May 7, 2015 |
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 | |
71aad674 A |
43 | .Op Fl jRu |
44 | .Op Fl r Ar seconds | Ar filename | |
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 | |
71aad674 | 61 | .Op Fl jnRu |
e1a085ba A |
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 | |
71aad674 | 83 | .Xr securelevel 7 ) |
e1a085ba A |
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. | |
71aad674 A |
135 | .It Fl R |
136 | Use RFC 2822 date and time output format. This is equivalent to use | |
137 | .Dq Li %a, %d %b %Y \&%T %z | |
138 | as | |
139 | .Ar output_fmt | |
140 | while | |
141 | .Ev LC_TIME | |
142 | is set to the | |
143 | .Dq C | |
144 | locale . | |
e1a085ba A |
145 | .It Fl r Ar seconds |
146 | Print the date and time represented by | |
147 | .Ar seconds , | |
148 | where | |
44bd5ea7 | 149 | .Ar seconds |
e1a085ba A |
150 | is the number of seconds since the Epoch |
151 | (00:00:00 UTC, January 1, 1970; | |
152 | see | |
153 | .Xr time 3 ) , | |
154 | and can be specified in decimal, octal, or hex. | |
71aad674 A |
155 | .It Fl r Ar filename |
156 | Print the date and time of the last modification of | |
157 | .Ar filename . | |
e1a085ba A |
158 | .It Fl t Ar minutes_west |
159 | Set the system's value for minutes west of | |
160 | .Tn GMT . | |
161 | .Ar minutes_west | |
162 | specifies the number of minutes returned in | |
163 | .Fa tz_minuteswest | |
164 | by future calls to | |
165 | .Xr gettimeofday 2 . | |
44bd5ea7 A |
166 | .It Fl u |
167 | Display or set the date in | |
168 | .Tn UTC | |
e1a085ba A |
169 | (Coordinated Universal) time. |
170 | .It Fl v | |
171 | Adjust (i.e., take the current date and display the result of the | |
172 | adjustment; not actually set the date) the second, minute, hour, month | |
173 | day, week day, month or year according to | |
174 | .Ar val . | |
175 | If | |
176 | .Ar val | |
177 | is preceded with a plus or minus sign, | |
178 | the date is adjusted forwards or backwards according to the remaining string, | |
179 | otherwise the relevant part of the date is set. | |
180 | The date can be adjusted as many times as required using these flags. | |
181 | Flags are processed in the order given. | |
182 | .Pp | |
183 | When setting values | |
184 | (rather than adjusting them), | |
185 | seconds are in the range 0-59, minutes are in the range 0-59, hours are | |
186 | in the range 0-23, month days are in the range 1-31, week days are in the | |
187 | range 0-6 (Sun-Sat), | |
188 | months are in the range 1-12 (Jan-Dec) | |
189 | and years are in the range 80-38 or 1980-2038. | |
190 | .Pp | |
191 | If | |
192 | .Ar val | |
193 | is numeric, one of either | |
194 | .Ar y , | |
195 | .Ar m , | |
196 | .Ar w , | |
197 | .Ar d , | |
198 | .Ar H , | |
199 | .Ar M | |
200 | or | |
201 | .Ar S | |
202 | must be used to specify which part of the date is to be adjusted. | |
203 | .Pp | |
204 | The week day or month may be specified using a name rather than a | |
205 | number. | |
206 | If a name is used with the plus | |
207 | (or minus) | |
208 | sign, the date will be put forwards | |
209 | (or backwards) | |
210 | to the next | |
211 | (previous) | |
212 | date that matches the given week day or month. | |
213 | This will not adjust the date, | |
214 | if the given week day or month is the same as the current one. | |
215 | .Pp | |
216 | When a date is adjusted to a specific value or in units greater than hours, | |
217 | daylight savings time considerations are ignored. | |
218 | Adjustments in units of hours or less honor daylight saving time. | |
219 | So, assuming the current date is March 26, 0:30 and that the DST adjustment | |
220 | means that the clock goes forward at 01:00 to 02:00, using | |
221 | .Fl v No +1H | |
222 | will adjust the date to March 26, 2:30. | |
223 | Likewise, if the date is October 29, 0:30 and the DST adjustment means that | |
224 | the clock goes back at 02:00 to 01:00, using | |
225 | .Fl v No +3H | |
226 | will be necessary to reach October 29, 2:30. | |
227 | .Pp | |
228 | When the date is adjusted to a specific value that does not actually exist | |
229 | (for example March 26, 1:30 BST 2000 in the Europe/London timezone), | |
230 | the date will be silently adjusted forwards in units of one hour until it | |
231 | reaches a valid time. | |
232 | When the date is adjusted to a specific value that occurs twice | |
233 | (for example October 29, 1:30 2000), | |
234 | the resulting timezone will be set so that the date matches the earlier of | |
235 | the two times. | |
236 | .Pp | |
71aad674 A |
237 | It is not possible to adjust a date to an invalid absolute day, so using |
238 | the switches | |
239 | .Fl v No 31d Fl v No 12m | |
240 | will simply fail five months of the year. | |
241 | It is therefore usual to set the month before setting the day; using | |
242 | .Fl v No 12m Fl v No 31d | |
243 | always works. | |
244 | .Pp | |
e1a085ba A |
245 | Adjusting the date by months is inherently ambiguous because |
246 | a month is a unit of variable length depending on the current date. | |
247 | This kind of date adjustment is applied in the most intuitive way. | |
248 | First of all, | |
249 | .Nm | |
250 | tries to preserve the day of the month. | |
251 | If it is impossible because the target month is shorter than the present one, | |
252 | the last day of the target month will be the result. | |
253 | For example, using | |
254 | .Fl v No +1m | |
255 | on May 31 will adjust the date to June 30, while using the same option | |
256 | on January 30 will result in the date adjusted to the last day of February. | |
257 | This approach is also believed to make the most sense for shell scripting. | |
258 | Nevertheless, be aware that going forth and back by the same number of | |
259 | months may take you to a different date. | |
260 | .Pp | |
261 | Refer to the examples below for further details. | |
44bd5ea7 A |
262 | .El |
263 | .Pp | |
e1a085ba A |
264 | An operand with a leading plus |
265 | .Pq Sq + | |
266 | sign signals a user-defined format string | |
267 | which specifies the format in which to display the date and time. | |
268 | The format string may contain any of the conversion specifications | |
269 | described in the | |
44bd5ea7 A |
270 | .Xr strftime 3 |
271 | manual page, as well as any arbitrary text. | |
e1a085ba A |
272 | A newline |
273 | .Pq Ql \en | |
274 | character is always output after the characters specified by | |
44bd5ea7 | 275 | the format string. |
e1a085ba A |
276 | The format string for the default display is |
277 | .Dq +%+ . | |
44bd5ea7 A |
278 | .Pp |
279 | If an operand does not have a leading plus sign, it is interpreted as | |
280 | a value for setting the system's notion of the current date and time. | |
281 | The canonical representation for setting the date and time is: | |
282 | .Pp | |
283 | .Bl -tag -width Ds -compact -offset indent | |
284 | .It Ar cc | |
e1a085ba A |
285 | Century |
286 | (either 19 or 20) | |
287 | prepended to the abbreviated year. | |
44bd5ea7 | 288 | .It Ar yy |
e1a085ba A |
289 | Year in abbreviated form |
290 | (e.g., 89 for 1989, 06 for 2006). | |
44bd5ea7 | 291 | .It Ar mm |
e1a085ba | 292 | Numeric month, a number from 1 to 12. |
44bd5ea7 | 293 | .It Ar dd |
e1a085ba A |
294 | Day, a number from 1 to 31. |
295 | .It Ar HH | |
296 | Hour, a number from 0 to 23. | |
297 | .It Ar MM | |
298 | Minutes, a number from 0 to 59. | |
44bd5ea7 | 299 | .It Ar ss |
e1a085ba A |
300 | Seconds, a number from 0 to 61 |
301 | (59 plus a maximum of two leap seconds). | |
44bd5ea7 A |
302 | .El |
303 | .Pp | |
304 | Everything but the minutes is optional. | |
305 | .Pp | |
e1a085ba A |
306 | Time changes for Daylight Saving Time, standard time, leap seconds, |
307 | and leap years are handled automatically. | |
308 | .Sh ENVIRONMENT | |
1c4c78a5 | 309 | The following environment variables affect the execution of |
e1a085ba A |
310 | .Nm : |
311 | .Bl -tag -width Ds | |
1c4c78a5 A |
312 | .It Ev TZ |
313 | The timezone to use when displaying dates. | |
e1a085ba A |
314 | The normal format is a pathname relative to |
315 | .Pa /usr/share/zoneinfo . | |
316 | For example, the command | |
317 | .Dq TZ=America/Los_Angeles date | |
318 | displays the current time in California. | |
1c4c78a5 A |
319 | See |
320 | .Xr environ 7 | |
321 | for more information. | |
322 | .El | |
323 | .Sh FILES | |
324 | .Bl -tag -width /var/log/messages -compact | |
1c4c78a5 | 325 | .It Pa /var/log/messages |
e1a085ba | 326 | record of the user setting the time |
1c4c78a5 | 327 | .El |
e1a085ba A |
328 | .Sh EXIT STATUS |
329 | The | |
330 | .Nm | |
331 | utility exits 0 on success, 1 if unable to set the date, and 2 | |
332 | if able to set the local date, but unable to set it globally. | |
44bd5ea7 A |
333 | .Sh EXAMPLES |
334 | The command: | |
e1a085ba A |
335 | .Pp |
336 | .Dl "date ""+DATE: %Y-%m-%d%nTIME: %H:%M:%S""" | |
44bd5ea7 A |
337 | .Pp |
338 | will display: | |
339 | .Bd -literal -offset indent | |
e1a085ba | 340 | DATE: 1987-11-21 |
44bd5ea7 A |
341 | TIME: 13:36:16 |
342 | .Ed | |
343 | .Pp | |
e1a085ba A |
344 | In the Europe/London timezone, the command: |
345 | .Pp | |
346 | .Dl "date -v1m -v+1y" | |
347 | .Pp | |
348 | will display: | |
349 | .Pp | |
350 | .Dl "Sun Jan 4 04:15:24 GMT 1998" | |
351 | .Pp | |
352 | where it is currently | |
353 | .Li "Mon Aug 4 04:15:24 BST 1997" . | |
354 | .Pp | |
355 | The command: | |
356 | .Pp | |
357 | .Dl "date -v1d -v3m -v0y -v-1d" | |
358 | .Pp | |
359 | will display the last day of February in the year 2000: | |
360 | .Pp | |
361 | .Dl "Tue Feb 29 03:18:00 GMT 2000" | |
362 | .Pp | |
71aad674 | 363 | So will the command: |
e1a085ba | 364 | .Pp |
71aad674 | 365 | .Dl "date -v3m -v30d -v0y -v-1m" |
e1a085ba A |
366 | .Pp |
367 | because there is no such date as the 30th of February. | |
368 | .Pp | |
44bd5ea7 | 369 | The command: |
e1a085ba A |
370 | .Pp |
371 | .Dl "date -v1d -v+1m -v-1d -v-fri" | |
372 | .Pp | |
373 | will display the last Friday of the month: | |
374 | .Pp | |
375 | .Dl "Fri Aug 29 04:31:11 BST 1997" | |
376 | .Pp | |
377 | where it is currently | |
378 | .Li "Mon Aug 4 04:31:11 BST 1997" . | |
379 | .Pp | |
380 | The command: | |
381 | .Pp | |
382 | .Dl "date 0613162785" | |
44bd5ea7 A |
383 | .Pp |
384 | sets the date to | |
385 | .Dq Li "June 13, 1985, 4:27 PM" . | |
386 | .Pp | |
ddb4a88b | 387 | .Dl "date ""+%m%d%H%M%Y.%S""" |
e1a085ba A |
388 | .Pp |
389 | may be used on one machine to print out the date | |
390 | suitable for setting on another. | |
e1a085ba | 391 | .Pp |
44bd5ea7 | 392 | The command: |
e1a085ba A |
393 | .Pp |
394 | .Dl "date 1432" | |
44bd5ea7 A |
395 | .Pp |
396 | sets the time to | |
397 | .Li "2:32 PM" , | |
398 | without modifying the date. | |
44bd5ea7 | 399 | .Pp |
e1a085ba A |
400 | Finally the command: |
401 | .Pp | |
402 | .Dl "date -j -f ""%a %b %d %T %Z %Y"" ""`date`"" ""+%s""" | |
403 | .Pp | |
404 | can be used to parse the output from | |
405 | .Nm | |
406 | and express it in Epoch time. | |
407 | .Sh DIAGNOSTICS | |
44bd5ea7 A |
408 | Occasionally, when |
409 | .Xr timed 8 | |
e1a085ba A |
410 | synchronizes the time on many hosts, the setting of a new time value may |
411 | require more than a few seconds. | |
44bd5ea7 A |
412 | On these occasions, |
413 | .Nm | |
414 | prints: | |
415 | .Ql Network time being set . | |
416 | The message | |
417 | .Ql Communication error with timed | |
418 | occurs when the communication | |
419 | between | |
420 | .Nm | |
e1a085ba A |
421 | and |
422 | .Xr timed 8 | |
423 | fails. | |
1c4c78a5 | 424 | .Sh LEGACY SYNOPSIS |
e1a085ba | 425 | As above, except for the second line, which is: |
1c4c78a5 | 426 | .Pp |
e1a085ba A |
427 | .Nm |
428 | .Op Fl jnu | |
429 | .Sm off | |
430 | .Op Oo Oo Oo Oo Ar cc Oc Ar yy Oc Ar mm Oc Ar dd Oc Ar HH | |
431 | .Ar MM Op Ar .ss | |
432 | .Sm on | |
1c4c78a5 | 433 | .Sh LEGACY DIAGNOSTICS |
e1a085ba A |
434 | When invoked in legacy mode, the following exit values are returned: |
435 | .Bl -tag -width X -compact | |
436 | .It 0 | |
437 | The date was written successfully | |
438 | .It 1 | |
439 | Unable to set the date | |
440 | .It 2 | |
441 | Able to set the local date, but unable to set it globally | |
442 | .El | |
ddb4a88b A |
443 | .Pp |
444 | For more information about legacy mode, see | |
445 | .Xr compat 5 . | |
1c4c78a5 | 446 | .Sh SEE ALSO |
71aad674 | 447 | .Xr locale 1 , |
1c4c78a5 | 448 | .Xr gettimeofday 2 , |
71aad674 | 449 | .Xr getutxent 3 , |
1c4c78a5 | 450 | .Xr strftime 3 , |
e1a085ba | 451 | .Xr strptime 3 , |
1c4c78a5 A |
452 | .Xr timed 8 |
453 | .Rs | |
454 | .%T "TSP: The Time Synchronization Protocol for UNIX 4.3BSD" | |
455 | .%A R. Gusella | |
456 | .%A S. Zatti | |
457 | .Re | |
44bd5ea7 A |
458 | .Sh STANDARDS |
459 | The | |
460 | .Nm | |
e1a085ba | 461 | utility is expected to be compatible with |
44bd5ea7 | 462 | .St -p1003.2 . |
71aad674 A |
463 | The |
464 | .Fl d , f , j , n , r , t , | |
465 | and | |
466 | .Fl v | |
467 | options are all extensions to the standard. | |
e1a085ba A |
468 | .Sh HISTORY |
469 | A | |
470 | .Nm | |
471 | command appeared in | |
472 | .At v1 . |