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参数,它显然也允许以微秒和毫秒为单

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
  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"