需要澄清时间的使用 class
Clarification is needed on the use of the Time class
Time class 允许获取标准时间参数达秒:
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: 07:43:10 96212801
Date: 2021-04-18
还有一个 time.ns 参数,这显然允许在 micro & [=25 中获得额外的时间分辨率=]milli 秒。显然可以这样做:
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)"
输出:
Time: 13:13:00 721 721000
不过,我还是有疑惑。你能建议正确的解决方案吗?
提前致谢,MK
你完全正确。
Time.now.local
returns a TimeInfo
class (https://libs.toit.io/core/time/class-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"
导致:Time: 13:13:00 721ms 000us
Time class 允许获取标准时间参数达秒:
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: 07:43:10 96212801
Date: 2021-04-18
还有一个 time.ns 参数,这显然允许在 micro & [=25 中获得额外的时间分辨率=]milli 秒。显然可以这样做:
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)"
输出:
Time: 13:13:00 721 721000
不过,我还是有疑惑。你能建议正确的解决方案吗? 提前致谢,MK
你完全正确。
Time.now.local
returns a TimeInfo
class (https://libs.toit.io/core/time/class-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"
导致:Time: 13:13:00 721ms 000us