2010-05-31 106 views

回答

3

包Ada.Real_time不提供直接格式的方法。

我建议你看看Ada.Calendar.Formatting。 你有一个像Ada.Real_time类似的方法。 的确,有一个方法Image(parameters:Time),它返回一个String。

详情:Package: Ada.Calendar.Formatting

+0

最后,我们使用了Ada.Calendar.Formatting而不是'Ada.Real_Time.Clock' – Natim 2010-06-01 07:49:35

3

调用Ada.Real_Time.Split()函数,其中一个时间转换为SECONDS_COUNT和Time_Span。 Seconds_Count值是历元以来经过的秒数,Time_Span值是最后一秒之后(非常小)的Time_Units的数量。详情请参阅D.8 Monotonic Time(29)。

Seconds_Count在包中是公开可见的,Time_Span可以通过To_Duration()转换为持续时间。

请注意,您可以反转该过程并使用Time_Of()重构Time值。

5

可以使用Ada.Real_Time.SplitAda.Real_Time.Time成转换(a)中,因为时代,类型Ada.Real_Time.Seconds_Count和(b)的小数部分,类型(私人)Ada.Real_Time.Time_Span的秒数;您可以使用Ada.Real_Time.To_Duration将小数部分转换为Duration

然后,您可以使用Ada.Real_Time.Seconds_Count'ImageDuration'Image转换为String

但是你想要什么字符串?如果要在一次运行中发生事件时进行比较,那么很好,但在语言定义中没有什么可以说明这个时代是什么时候的;例如,它可能是电脑上次启动的时间。

2

如果你不需要它为可读文本,但只是希望它保存到一个文件,你可以尝试使用流输出属性('Write