使用 (UTC Unix timestamp % 60) 作为 UTC 秒字段是否安全?

Is it safe to use (UTC Unix timestamp % 60) as the UTC seconds field?

我有一个嵌入式设备正在与基于 Linux 的无线网关的 Unix 时间 (time_t) 进行粗略的时间同步,该时间设置为 UTC。我需要让我的一些行动与挂钟时间保持一致——例如,我需要在一分钟过后 30 秒完成一项任务。我是否需要调用通常的 C 标准库函数来获取秒字段,或者做一些更简单的事情是否安全:

int seconds_past_the_minute = (unix_utc_timestamp % 60);

应该是安全的,就是丑了

由于 Unix 时间戳忽略闰秒,并且它们从某个日期的午夜开始计算,模运算 unix_utc_timestamp % 60 应该会给出分钟的秒数。一些测试应该验证,如果他们这样做,我会对正确性感到高兴。

但是,使用库函数有什么问题呢?我使用 C 库的经历可以追溯到 2002 年,所以我不记得它到底是什么样子了,但您可能认为它提供了更具可读性和不言自明的代码。所以如果没有强烈的反对意见,我倾向于选择它。

(Unix 时间戳记的起始日期是 1970-01-01。在 UTC 中。但如果它是任何其他 UTC 日期,则参数将相同。)