Arch manual pages

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


clock - 獲取和操縱時間

clock option ?arg arg ...?

這個命令進行多種操作中的某一個,可以獲取或操縱表示一些時間概念(notion)的字符串或值。option 參數確定這個命令完成什麼操作。合法的 options (可以使用縮寫) 有:
clock clicks ?-milliseconds?
返回一個高解析度(high-resolution)的時間值,是一個依賴於系統的整數。值的單位是依賴於系統的但應該是系統上可獲得的最高解析度的時鐘,比如一個 CPU 週期記數(counter)。如果指定了 -milliseconds ,則保證這個值是微秒的粒度。這個值只應用於流逝了的時間的相對測量。
clock format clockValue ?-format string? ?-gmt boolean?
把一個整數時間值轉換成人可閱讀的形式,典型的,這個時間值是從 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 標準時來格式化,如果是假則使用操作環境定義的本地時區。
clock scan dateString ?-base clockVal? ?-gmt boolean?
dateString 轉換成一個整數時鐘值(參見 clock seconds)。這個命令可分析並轉換幾乎所有的標準的日期和/或時間串,其中可以包含標準的時區助記碼(mnemonic)。如果只指定了一個時間,假定爲當前的日期。如果串中不包括一個時區助記碼,除非 -gmt 參數是真之外假定爲本地時區,在 -gmt 參數是真的情況下,假定指定的時間是相對於 Greenwich 標準時來計算時鐘值。如果指定了 -gmt,它隻影響計算出的時間值,不影響對 -base 的解釋。

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

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

time
一天中的時間,樣式是: hh?:mm?:ss?? ?meridian? ?zone? or hhmm ?meridian? ?zone?. 如果爲指定上下午(meridian), hh 被解釋爲一個24小時鐘點。
date
一個特定的月和日,年是可選的。可接受的格式是 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
一個 ISO 8601 point-in-time 指定,如 CCyymmddThhmmss, 這裏 T 是字面的 T,CCyymmdd hhmmss, 或者 CCyymmddThh:mm:ss.
relative time
相對當前時間的一個指定。格式是 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
clock seconds
把當前的日期和時間作爲依賴於系統的整數值返回。值的單位是秒,允許它被用於相對時間的計算。值通常被定義成從“epoch”開始(至今)總共流逝的時間。你不應該假定 epoch 的值。

clock, date, time

寒蟬退士

2001/06/21

http://cmpp.linuxforum.net

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