Linux 内核提供time_to_tm()
(参见此处):
/**
* time_to_tm - converts the calendar time to local broken-down time
*
* @totalsecs the number of seconds elapsed since 00:00:00 on January 1, 1970,
* Coordinated Universal Time (UTC).
* @offset offset seconds adding to totalsecs.
* @result pointer to struct tm variable to receive broken-down time
*/
void time_to_tm(time_t totalsecs, int offset, struct tm *result)
据介绍,tm
将是局部故障时间。因此,我理解tm
将尊重我的当地时区和 DST。如果这是正确的,我在代码中看不到它。
也许offset
应该使用参数来“提供”本地时区和 DST?
更新
按照这个问题,因此使用sys_tz结合time_to_tm()
我们可以获得“真实”的本地时间?AFAIK,本地时间表示法属于用户空间。例如,DST 是在每个时区专门编译的配置文件中定义的。
我很困惑。sys_tz
内核中的比是什么意思?