3

我想在一个文件中写一个Ada.Real_Time.Time ,

我怎样才能做到这一点?

谢谢

4

4 回答 4

6

您可以使用Ada.Real_Time.Split将 an 转换Ada.Real_Time.Time为 (a) 自纪元以来的秒数,类型Ada.Real_Time.Seconds_Count和 (b) 小数部分,类型 (private) Ada.Real_Time.Time_Span;并且您可以使用Ada.Real_Time.To_Duration将小数部分转换为Duration.

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

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

于 2010-05-31T20:31:17.067 回答
3

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

我建议您查看 Ada.Calendar.Formatting。你有一个方法 Clock 就像在 Ada.Real_time 中一样。实际上,有一个方法 Image(parameters : Time),它返回一个字符串。

有关更多详细信息:包:Ada.Calendar.Formatting

于 2010-05-31T19:01:41.557 回答
3

调用 Ada.Real_Time.Split() 函数,该函数将 Time 转换为 Seconds_Count 和 Time_Span。Seconds_Count 值是自纪元以来经过的秒数,Time_Span 值是最后一秒之后(非常小的)Time_Units 的数量。详见D.8 单调时间(29)。

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

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

于 2010-05-31T20:19:49.603 回答
2

如果您不需要将其作为可读文本,而只是希望将其保存到文件中,则可以尝试使用流输出属性 ( 'Write)

于 2010-06-01T05:46:50.250 回答