IC数字后端知识角

Tcl/Tk中的时间类型seconds 、clicks 等

2023-02-08  本文已影响0人  飞奔的大虎

一、日期时间类型主要有以下几类

#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

上一篇下一篇

猜你喜欢

热点阅读