我有一个多线程应用程序需要向用户显示某些日期。日期使用UTC Unix时间值进行存储。但是,日期必须显示在用户的时区中,而不是本地服务器时间或UTC。基本上,我需要这样的功能:C/C++中线程安全的时区特定时间显示
struct tm *usertime_r(const time_t *timer, struct tm *result, const int timezone) {
<just like localtime_r, except it uses UTC+timezone as the timezone>
}
此功能必须是线程安全的,所以我不认为设置TZ
环境变量将是一种选择。
这是一个非常非常基本的答案,因为系统库不能准确跟踪许多更改,所以对于许多时区实际上并不可行。只是抵消是不够的,因为它随时间而变化。 – 2013-12-31 17:03:18