Time 需要澄清时间类的使用
Time类允许获取标准时间参数,最长可达秒:Time 需要澄清时间类的使用,time,toit,Time,Toit,Time类允许获取标准时间参数,最长可达秒: main : time := Time.now.local print "Time: $(%02d time.h):$(%02d time.m):$(%02d time.s) $(time.ns)" print "Date: $(%04d time.year)-$(%02d time.month)-$(%02d time.day)" 输出: 还有一个time.ns参数,它显然也允许以微秒和毫秒为单
main :
time := Time.now.local
print "Time: $(%02d time.h):$(%02d time.m):$(%02d time.s) $(time.ns)"
print "Date: $(%04d time.year)-$(%02d time.month)-$(%02d time.day)"
输出:
还有一个time.ns参数,它显然也允许以微秒和毫秒为单位获得额外的时间分辨率。显然可以这样做:
main :
time := Time.now.local
ms := time.ns / Duration.NANOSECONDS_PER_MILLISECOND
us := time.ns / Duration.NANOSECONDS_PER_MICROSECOND
print "Time: $(%02d time.h):$(%02d time.m):$(%02d time.s) $(ms) $(us)"
输出:
不过,我仍然有疑问。你能提出正确的解决办法吗?
事先谢谢,MK你完全正确
Time.now.local
返回一个TimeInfo
类(),该类只有ns
,但没有ms
或us
您正在正确计算ms
和us
的值:
ms := time.ns / Duration.NANOSECONDS_PER_MILLISECOND
us := time.ns / Duration.NANOSECONDS_PER_MICROSECOND
您可以将任意一个附加到stringify的输出以使其更精确:
more_precise_ms := "Time: $(%02d time.h):$(%02d time.m):$(%02d time.s).$(%03d ms)
more_precise_us := "Time: $(%02d time.h):$(%02d time.m):$(%02d time.s).$(%06d ns)
第一个将产生:Time:13:13:00.721
,第二个:Time:13:13:00.721000
如果要分别显示毫秒和纳秒,则需要从微秒部分删除毫秒:
ms := time.ns / Duration.NANOSECONDS_PER_MILLISECOND
remaining_ns := time.ns % Duration.NANOSECONDS_PER_MILLISECOND
us := remaining_ns / Duration.NANOSECONDS_PER_MICROSECOND
然后,您可以使用它按如下方式打印:
print "Time: $(%02d time.h):$(%02d time.m):$(%02d time.s) $(%03d ms)ms $(%03d us)us"
导致:时间:13:13:00 721ms 000us
ms := time.ns / Duration.NANOSECONDS_PER_MILLISECOND
remaining_ns := time.ns % Duration.NANOSECONDS_PER_MILLISECOND
us := remaining_ns / Duration.NANOSECONDS_PER_MICROSECOND
print "Time: $(%02d time.h):$(%02d time.m):$(%02d time.s) $(%03d ms)ms $(%03d us)us"