1つはシステム依存の高分解能の値を返すclock clicksです。
CPUのクロックティック単位のカウント値を返します。
-millisecondsオプションでミリ秒単位のカウント値を返します。
clock clicks => 1089645 clock clicks -milliseconds => 983625806  | 
もう1つは、現在の時刻をシステム依存の整数で返すclock secondsです。
新世紀からの経過時間を秒数で返します。
clock seconds => 1006006782  | 
clock format [clock seconds] => Sat Nov 17 23:26:38 JST 2001 clock format [clock seconds] -gmt true => Sat Nov 16 15:26:38 JST 2001  | 
-formatオプションで書式を与えて変換することができます。
clock format [clock seconds] -format {%Y/%m/%d(%a) %p %I:%M:%S}
=> 2001/11/17(Sat) PM 11:26:38
 | 
-formatオプションで指定できるキーワードは以下の通りです。
| キーワード | 説明 | 
|---|---|
| %% | %に置換する | 
| %a | 曜日の短縮形式 (Mon, Tue, ...) | 
| %A | 曜日 (Monday, Tuesday, ...) | 
| %b | 月の短縮形式 (Jan, Feb, ...) | 
| %B | 月 (January, February, ...) | 
| %c | ロケール規定の日付と時刻 | 
| %d | 日/月 (01 - 31) | 
| %H | 24時間時刻形式の時 (00 - 23) | 
| %I | 12時間時刻形式の時 (00 - 23) | 
| %j | 日/年 (001 - 366) | 
| %m | 月 (01 - 12) | 
| %M | 分 (00 - 59) | 
| %p | AMかPM | 
| %S | 秒 (00 - 59) | 
| %U | 週/年 (00 - 52) 日曜日を週の最初の日とする | 
| %w | 週の番号 (日曜日 = 0) | 
| %W | 週/年 (00 - 52) 月曜日を週の最初の日とする | 
| %x | ロケール規定の日付 | 
| %X | ロケール規定の時刻 | 
| %y | 西暦年の短縮形式 (00 - 99) | 
| %Y | 西暦年 (2001等) | 
| %Z | タイムゾーン | 
| %D | %m/%d/%y形式の日付 | 
| %e | 日/月 (1 - 31) 先頭に0を付けない | 
| %h | 月の短縮形式 | 
| %n | ニューラインを挿入する | 
| %r | %I:%M:%S %p形式の時刻 | 
| %R | %H:%M形式の時刻 | 
| %t | タブを挿入する | 
| %T | %H:%M:%S形式の時刻 | 
clock scan {1999-10-31}
=> 941295600
clock scan {1999-10-31} -gmt true
=> 941328000
 | 
日付/時刻形式の書式は以下の通りです。
# 時刻 (meridian = AM or PM) hh?:mm?:ss?? ?meridian? ?zone? hhmm ?meridian? ?zone? # 日付 (西暦2000年対応) mm/dd?/yy? monthname dd ?, yy? dd monthname ?yy? day, dd monthname yy ?CC?yymmdd ?CC?yy-mm-dd dd-monthname-?CC?yy # ISO 8601日時形式 (T = リテラル) CCyymmddThhmmss CCyymmdd hhmmss CCyymmddThh:mm:ss  | 
修飾子で相対日時を指定することができます
clock scan {1999-10-31 3 day}
=> 941554800
clock scan {1999-10-31 4 hour}
=> 941310000
 | 
-baseオプションで基準日を指定することができます。
clock scan "3 day" -base [clock scan {1999-10-31}]
=> 941554800
clock scan "4 hour" -base [clock scan {1999-10-31}]
=> 941310000
 | 
相対日時に指定できる修飾子は以下の通りです。
# 単数形 year, fortnight, month, week, day, hour, minute(min), second(sec) # 複数形 years, fortnights, months, weeks, days, hours, minutes(min), seconds(sec) # その他 tomorrow, yesterday, today, now, last, this, next, ago sunday, monday, tuesday, wednesday, thursday, friday, saturday 等  | 
proc isleapyear {year} {
    if {[catch "clock scan 2/29/$year"]} {
        return 0
    } else {
        return 1
    }
}
isleapyear 2000
=> 1
isleapyear 2001
=> 0
 | 
monday修飾子を使ってハッピーマンデー(第2月曜日)の成人式と体育の日を調べてみましょう。
# 成人式 clock format [clock scan "2 monday" -base [clock scan 1/1/2001]] -format "%D" => 01/08/01 # 体育の日 clock format [clock scan "2 monday" -base [clock scan 10/1/2001]] -format "%D" => 10/08/01  | 
残念ながら、clockコマンドを使っても春分の日と秋分の日は調べられません。(^^;)