我想在一个文件中写一个Ada.Real_Time.Time ,
我怎样才能做到这一点?
谢谢
您可以使用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'Image
andDuration'Image
转换为String
.
但是你想要这个字符串做什么?如果要比较一次运行中发生的事情,那很好,但是语言定义中没有什么可以说明时代是什么时候;例如,它可能是计算机上次启动的时间。
包 Ada.Real_time 不提供直接格式的方法。
我建议您查看 Ada.Calendar.Formatting。你有一个方法 Clock 就像在 Ada.Real_time 中一样。实际上,有一个方法 Image(parameters : Time),它返回一个字符串。
有关更多详细信息:包:Ada.Calendar.Formatting
调用 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 值。
如果您不需要将其作为可读文本,而只是希望将其保存到文件中,则可以尝试使用流输出属性 ( 'Write
)