Provided by: tcl8.4-doc_8.4.20-7_all bug

NAME

       clock - Obtain and manipulate time

SYNOPSIS

       clock option ?arg arg ...?
_________________________________________________________________

DESCRIPTION

       This  command  performs  one  of  several operations that may obtain or manipulate strings or values that
       represent some notion of time.  The option argument determines what action is carried out by the command.
       The legal options (which may be abbreviated) are:                                                         2

       clock clicks ?-milliseconds?                                                                              2
              Return a high-resolution time value as a system-dependent integer value.  The unit of the value is 2
              system-dependent but should be the highest resolution clock available on the system such as a  CPU 2
              cycle  counter.  If  -milliseconds is specified, then the value is guaranteed to be of millisecond 2
              granularity.  This value should only be used for the relative measurement of elapsed time.

       clock format clockValue ?-format string? ?-gmt boolean?
              Converts an integer time value, typically returned by clock seconds, clock scan, or the  atime  or
              mtime options of the file command, to human-readable form.  If the -format argument is present the
              next  argument  is  a  string  that  describes  how  the date and time are to be formatted.  Field
              descriptors consist of a % followed by a field descriptor character.   All  other  characters  are
              copied into the result.  Valid field descriptors are:

              %%     Insert a %.

              %a     Abbreviated weekday name (Mon, Tue, etc.).

              %A     Full weekday name (Monday, Tuesday, etc.).

              %b     Abbreviated month name (Jan, Feb, etc.).

              %B     Full month name.                                                                            2

              %c                                                                                                 2
                     Locale  specific  date and time.  The format for date and time in the default "C" locale on 2
                     Unix/Mac is "%a %b %d %H:%M:%S %Y".  On Windows, this value is  the  locale  specific  long 2
                     date and time, as specified in the Regional Options control panel settings.                 2

              %C                                                                                                 2
                     First two digits of the four-digit year (19 or 20).

              %d     Day of month (01 - 31).                                                                     2

              %D                                                                                                 2
                     Date as %m/%d/%y.                                                                           2

              %e                                                                                                 2
                     Day of month (1 - 31), no leading zeros.                                                    2

              %g                                                                                                 2
                     The  ISO8601  year  number corresponding to the ISO8601 week (%V), expressed as a two-digit 2
                     year-of-the-century, with leading zero if necessary.                                        2

              %G                                                                                                 2
                     The ISO8601 year number corresponding to the ISO8601 week (%V), expressed as  a  four-digit 2
                     number.                                                                                     2

              %h                                                                                                 2
                     Abbreviated month name.

              %H     Hour in 24-hour format (00 - 23).                                                           2

              %I                                                                                                 2
                     Hour in 12-hour format (01 - 12).

              %j     Day of year (001 - 366).                                                                    2

              %k                                                                                                 2
                     Hour in 24-hour format, without leading zeros (0 - 23).                                     2

              %l                                                                                                 2
                     Hour in 12-hour format, without leading zeros (1 - 12).

              %m     Month number (01 - 12).

              %M     Minute (00 - 59).                                                                           2

              %n                                                                                                 2
                     Insert a newline.

              %p     AM/PM indicator.                                                                            2

              %r                                                                                                 2
                     Time  in  a  locale-specific  "meridian"  format.  The "meridian" format in the default "C" 2
                     locale is "%I:%M:%S %p".                                                                    2

              %R                                                                                                 2
                     Time as %H:%M.                                                                              2

              %s                                                                                                 2
                     Count of seconds since the epoch, expressed as a decimal integer.

              %S     Seconds (00 - 59).                                                                          2

              %t                                                                                                 2
                     Insert a tab.                                                                               2

              %T                                                                                                 2
                     Time as %H:%M:%S.                                                                           2

              %u                                                                                                 2
                     Weekday number (Monday = 1, Sunday = 7).

              %U     Week of year (00 - 52), Sunday is the first day of the week.                                2

              %V                                                                                                 2
                     Week of year according to ISO-8601 rules.  Week 1 of a given year is the week containing  4 2
                     January.                                                                                    2

              %w                                                                                                 2
                     Weekday number (Sunday = 0, Saturday = 6).

              %W     Week of year (00 - 52), Monday is the first day of the week.                                2

              %x                                                                                                 2
                     Locale  specific date format.  The format for a date in the default "C" locale for Unix/Mac 2
                     is "%m/%d/%y".  On Windows, this value  is  the  locale  specific  short  date  format,  as 2
                     specified in the Regional Options control panel settings.                                   2

              %X                                                                                                 2
                     Locale  specific  24-hour  time  format.   The format for a 24-hour time in the default "C" 2
                     locale for Unix/Mac is "%H:%M:%S".  On Windows, this value  is  the  locale  specific  time 2
                     format, as specified in the Regional Options control panel settings.

              %y     Year without century (00 - 99).

              %Y     Year with century (e.g. 1990)

              %Z     Time zone name.

              If the -format argument is not specified, the format string "%a %b %d %H:%M:%S %Z %Y" is used.  If 2
              the  -gmt argument is present the next argument must be a boolean which if true specifies that the
              time will be formatted as Greenwich Mean Time. If false then the local timezone will  be  used  as
              defined by the operating environment.

       clock scan dateString ?-base clockVal? ?-gmt boolean?
              Convert  dateString  to  an  integer  clock value (see clock seconds).  This command can parse and
              convert virtually any standard date and/or time string,  which  can  include  standard  time  zone
              mnemonics.   If  only  a  time  is specified, the current date is assumed.  If the string does not
              contain a time zone mnemonic, the local time zone is assumed, unless the -gmt argument is true, in
              which case the clock value is calculated assuming that the specified time is relative to Greenwich
              Mean Time.  -gmt, if specified, affects only the computed time  value;  it  does  not  impact  the
              interpretation of -base.

              If the -base flag is specified, the next argument should contain an integer clock value.  Only the
              date  in  this value is used, not the time.  This is useful for determining the time on a specific
              day or doing other date-relative conversions.

              The dateString consists of zero or more specifications of the following form:

              time   A time of day, which is of the form: hh?:mm?:ss??  ?meridian?  ?zone?  or  hhmm  ?meridian?
                     ?zone?. If no meridian is specified, hh is interpreted on a 24-hour clock.

              date   A  specific  month  and  day  with  optional  year.  The acceptable formats are mm/dd?/yy?,
                     monthname dd ?, yy?, dd monthname ?yy?, day, dd monthname yy, ?CC?yymmdd, ?CC?yy-mm-dd, dd-
                     monthname-?CC?yy.  The default year is the current year.  If the year is less than 100,  we 2
                     treat the years 00-68 as 2000-2068 and the years 69-99 as 1969-1999.  Not all platforms can 2
                     represent the years 38-70, so an error may result if these years are used.

              ISO 8601 point-in-time
                     An ISO 8601 point-in-time specification, such as CCyymmddThhmmss, where T is the literal T,
                     CCyymmdd  hhmmss,  or  CCyymmddThh:mm:ss.  Note that only these three formats are accepted.
                     The command does not accept the full range of  point-in-time  specifications  specified  in
                     ISO8601.  Other formats can be recognized by using commands such as regexp to extract their
                     fields and reorganize them into a form accepted by the clock scan command.

              relative time
                     A  specification  relative to the current time.  The format is number unit acceptable units
                     are year, fortnight, month, week, day, hour, minute (or min), and  second  (or  sec).   The
                     unit  can be specified as a singular or plural, as in 3 weeks.  These modifiers may also be
                     specified: tomorrow, yesterday, today, now, last, this, next, ago.

              The actual date is calculated according to the following steps.  First, any absolute  date  and/or
              time  is  processed  and  converted.   Using that time as the base, day-of-week specifications are
              added.  Next, relative specifications are used.  If a date or day is specified, and no absolute or
              relative time is given, midnight is used.  Finally, a correction is applied so  that  the  correct
              hour  of  the day is produced after allowing for daylight savings time differences and the correct
              date is given when going from the end of a long month to a short month.

              Daylight savings time correction is applied only when the relative time is specified in  units  of
              days  or  more,  ie,  days, weeks, fortnights, months or years.  This means that when crossing the
              daylight savings time boundary, different results will be given for clock scan "1 day"  and  clock
              scan "24 hours":
                     % clock scan "1 day" -base [clock scan 1999-10-31]
                     941443200
                     % clock scan "24 hours" -base [clock scan 1999-10-31]
                     941439600

       clock seconds
              Return  the  current  date and time as a system-dependent integer value.  The unit of the value is
              seconds, allowing it to be used for relative time calculations.  The value is usually  defined  as
              total elapsed time from an ``epoch''.  You shouldn't assume the value of the epoch.

SEE ALSO

       date(1), time(3tcl)

KEYWORDS

       clock, date, time

Tcl                                                    8.4                                           clock(3tcl)