clock(3tcl) Tcl Built-In Commands clock(3tcl)

clock - 獲取和操縱時間

總覽 SYNOPSIS

clock option ?arg arg ...?

描述 DESCRIPTION

這個命令進行多種操作中的某一個,可以獲取或操縱表示一些時間概念(notion)的字串或值。option 引數確定這個命令完成什麼操作。合法的 options (可以使用縮寫) 有:

clock clicks ?-milliseconds?
返回一個高解析度(high-resolution)的時間值,是一個依賴於系統的整數。值的單位是依賴於系統的但應該是系統上可獲得的最高解析度的時鐘,比如一個 CPU 週期記數(counter)。如果指定了 -milliseconds ,則保證這個值是微秒的粒度。這個值只應用於流逝了的時間的相對測量。
把一個整數時間值轉換成人可閱讀的形式,典型的,這個時間值是從 clock secondsclock scan、或 file 命令的 atimemtime、或 ctime 選項返回的。如果 -format 引數存在,下一個引數是描述如何格式化日期和時間的一個字串。欄位描述符由一個 % 和隨後的欄位描述符字元組成。所有的其他字元都複製到結果中。有效的欄位描述符有:
%%
插入一個 %。
%a
星期名的縮寫 (Mon, Tue, etc.)。
%A
完整的星期名 (Monday, Tuesday, etc.)。
%b
月名的縮寫 (Jan, Feb, etc.)。
%B
完整的月名。
%c
特定於本地的日期和時間。
%d
月中的第幾天 (01 - 31)。
%H
24小時格式的小時(00 - 23)。
%I
12小時格式的小時 (00 - 12)。
%j
年中的第幾天 (001 - 366)。
%m
第幾月 (01 - 12)。
%M
分 (00 - 59)。
%p
AM/PM 指示符。
%S
秒 (00 - 59)。
%U
年中的第幾星期 (00 - 52),星期天是一個星期中的第一天。
%w
星期幾 (Sunday = 0)。
%W
年中的第幾星期 (00 - 52),星期一是一個星期中的第一天。
%x
特定於本地的日期格式。
%X
特定於本地的時間格式。
%y
世紀中的第幾年 (00 - 99)。
%Y
帶世紀的年 (例如 1990)。
%Z
時區名。
在一些系統上支援下列補充的欄位描述符(例如在 Unix 上而不在 Windows):
%D
形如 %m/%d/%y 的日期。
%e
月中的第幾天 (1 - 31),沒有前導的零。
%h
月名的縮寫。
%n
插入一個換行。
%r
形如 %I:%M:%S %p 的時間。
%R
形如 %H:%M 的時間。
%t
插入一個 tab。
%T
形如 %H:%M:%S 的時間。
如果未指定 -format 引數,使用格式串 “%a %b %d %H:%M:%S %Z %Y”。如果 -gmt 引數存在,下一個引數必須是一個 boolean (值)。如果是真則指定時間作為 Greenwich 標準時來格式化,如果是假則使用操作環境定義的本地時區。
dateString 轉換成一個整數時鐘值(參見 clock seconds)。這個命令可分析並轉換幾乎所有的標準的日期和/或時間串,其中可以包含標準的時區助記碼(mnemonic)。如果只指定了一個時間,假定為當前的日期。如果串中不包括一個時區助記碼,除非 -gmt 引數是真之外假定為本地時區,在 -gmt 引數是真的情況下,假定指定的時間是相對於 Greenwich 標準時來計算時鐘值。如果指定了 -gmt,它隻影響計算出的時間值,不影響對 -base 的解釋。

如果指定了 -base 標記,下一個引數將包括一個整數的時鐘值。只使用這個值中的日期而不管時間。這對確定特定的某天的時間或做其他的相對於日期的轉換有用。

dateString 包含零個或多個下列形式的指定(specification):

一天中的時間,樣式是: hh?:mm?:ss?? ?meridian? ?zone? or hhmm ?meridian? ?zone?. 如果為指定上下午(meridian), hh 被解釋為一個24小時鐘點。
一個特定的月和日,年是可選的。可接受的格式是 mm/dd?/yy?, monthname dd ?, yy?, dd monthname ?yy?, day, dd monthname yy, ?CC?yymmdd, ?CC?yy-mm-dd, dd-monthname-?CC?yy. 預設的年是當前年。如果年小於 100,我們把 00-68 年作為 2000-2068 年而 69-99 年作為 1969-1999 年。注意所有平臺都可以表示 38-70 年, 所以如果使用這些年就可能出錯。
一個 ISO 8601 point-in-time 指定,如 CCyymmddThhmmss, 這裡 T 是字面的 T,CCyymmdd hhmmss, 或者 CCyymmddThh:mm:ss.
相對當前時間的一個指定。格式是 number unit,可接受的單位是 yearfortnightmonthweekdayhourminute (或 min)、和 second (或 sec)。單位可以被指定為單數或複數,比如 3 weeks。還可以指定這些修飾符: tomorrowyesterdaytodaynowlastthisnextago
實際的日期計算依照下列的步驟。首先,處理和轉換所有絕對日期和/或時間。使用這個時間作為基準(base),新增上星期幾(day-of-week)指定。其次,使用相對指定。如果指定了一個日期或某天,並且沒有給出絕對或相對的時間,則使用午夜。最後,進行一次校正,這樣就在估計了夏令時不同之後產生正確的一天中的小時,並且在從一個大月結束到一個小月時給出正確的日期。

只在用如下單位指定相對時間的時候進行夏令時校正,日或更多,例如 days、 weeks、 fortnights、months 或 years。這意味著跨越夏令時邊界的時候,對 clock scan “1 day”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
把當前的日期和時間作為依賴於系統的整數值返回。值的單位是秒,允許它被用於相對時間的計算。值通常被定義成從“epoch”開始(至今)總共流逝的時間。你不應該假定 epoch 的值。

關鍵字 KEYWORDS

clock, date, time

寒蟬退士

2001/06/21

《中國 Linux 論壇 man 手冊頁翻譯計劃》:

http://cmpp.linuxforum.net

本頁面中文版由中文 man 手冊頁計劃提供。
中文 man 手冊頁計劃:https://github.com/man-pages-zh/manpages-zh

8.3 Tcl