Tcl/Tk中的时间类型seconds 、clicks 等
一、日期时间类型主要有以下几类
#clock seconds :返回从1970-1-1零时到今天的秒数
#milliseconds/microseconds :以毫秒/微秒返回时间
#clock add :时间加减 (支持负数)
#clock clicks :返回当前系统支持的最高精度时间
#clock format : 秒数转换为其他时间格式
#clock scna:其他时间格式转换为秒数
二:返回当前的UNIX时间,秒毫秒微秒
#返回秒数秒数 clock seconds
setb[clockseconds]puts"秒数为: $b"
#返回毫秒数 clock milliseconds
setx[clockmilliseconds]puts"毫秒数为: $x"
#返回微秒 clock microseconds
setc[clockmicroseconds]puts"微秒数为:$c"
#返回当前系统支持的最高精度时间的一个标记数值 clock clicks
seta[clockclicks]puts"标记数值为: $a"
#注意,只是一个高精度标记数值,并非时间数值
运行结果:
三、时间的加减
#clock add #做时间的计算时应将基数存入变量,因为每次调用clock secondes获取的都是最新时间
#获取时间将时间存入到t变量
sett[clockseconds]puts[clockadd$t1days]puts[clockadd$t-5years]
#不存在的时间会自动转换,如:2021年1月31日 + 1月 =2021年2月28
puts[clockadd"1612065600"1months]
#单位:秒 :seconds 分:minutes 时:hours 日:days 周:weeks 月:months 年:years
运行结果:
四、clock format:把UNNX时间转换为易读格式
#1.默认格式
setb[clockformat[clockseconds]]puts$b
运行结果:
默认格式
#2.本地化:以指定语言返回格式。语言列表请搜索s-639和SO-3166
setm[clockformat[clockseconds]-locale"zh"]puts$msetn[clockformat[clockseconds]-format"%Y-%m-%"]puts$n
运行结果:
#win系统时区名,位于TCL安装目录b\tcl8.6tzdata本例为乌鲁木齐
setk[clockformat[clockseconds]-timezone"Asia/Urumqi"]puts$k
#基本语法
#clock format秒数?--format{格式}?-timezone时区?--locale本地
五 、clock scan:把各种时间格式转换为秒数(UNX时间)
clockscan{2004-10-3005:00:00}-format{%Y-%m-%%H:%M:%S)>>1099083600
#不加-format参数时,scan会尝试解析时间,但结果不保证如愿
#未指定日期则自动使用当前日期,比如本例对应时间为2021/7/35:0:0
clockscan{05:00:00)>>1625259600
#如果通过base参数指定基准日期,则使用基准日期
#本例结果对应时间为随机写的时间不知为啥时候
clockscan{05:00:00}-base1125259600
#format-locale-timezoneformat用法与子命令相同
#time:代码段的平均运行时间
time{puts"nnn"}3>nnn>>64.10000000000001microseconds per iteration
#省略重复次数时,默认运行一次
timefor{set}{$i<1000}{incr}{continue>>230microseconds per iteration
#time代码段?重复次数?
原文链接:https://zhuanlan.zhihu.com/p/399942807