如何在阿达的unix时代获得秒数?

ale*_*lex 4 timestamp calendar ada

我觉得非常愚蠢,因为我似乎没有得到一个简单的自然数字代表自从Ada时代的unix时代(01/01/1970 00:00:00)以来的秒数.我Ada.Calendar上下阅读了它和它的子包,但似乎没有找到一种明智的方法来实现它,即使它Ada.Calendar.Clock本身应该是我想要的......

我没办法.任何朝着正确方向的推动?

tra*_*god 6

使用Ada.Calendar.Formatting,构建一个Time代表时代.

Epoch : constant Time := Formatting.Time_Of(1970, 1, 1, 0.0);
Run Code Online (Sandbox Code Playgroud)

检查之间的差异Ada.Calendar.ClockEpoch.

Put(Natural(Clock - Epoch)'Img);
Run Code Online (Sandbox Code Playgroud)

根据此纪元显示或Unix命令检查结果date +%s.

请参阅Ada 2005的基本原理:§7.3时间和日期以获取更多详细信息.