我觉得非常愚蠢,因为我似乎没有得到一个简单的自然数字代表自从Ada时代的unix时代(01/01/1970 00:00:00)以来的秒数。我已经上下阅读了Ada.Calendar
及其子包,但似乎没有找到明智的方法来实现这一点,即使Ada.Calendar.Clock
本身应该是正是我想要的......
我在我的智慧结束。是否朝着正确的方向轻推?
答案 0 :(得分:6)
使用Ada.Calendar.Formatting
构建代表epoch的Time
。
Epoch : constant Time := Formatting.Time_Of(1970, 1, 1, 0.0);
检查Ada.Calendar.Clock
和Epoch
之间的差异。
Put(Natural(Clock - Epoch)'Img);
根据此epoch display或Unix命令date +%s
检查结果。
有关其他详细信息,请参阅Rationale for Ada 2005: §7.3 Times and dates。
答案 1 :(得分:0)
还有一个包Ada.Calendar.Conversions,其中包含ada< - > unix转换。