c++中基于时区的时间
Time based on time zone in C++
gmtime()
和localtime()
的区别是什么?我的要求:我需要根据我所在的时区显示时间。我有一个以秒为单位的POSIX(UTC)格式的时间。我有时区偏移(在UTC和我的当前位置之间)在秒。我可以添加或减去时区偏移量。在此之后,我仍然有POSIX格式的时间。为了把它转换成人类的时间,我应该用gmtime()
还是localtime()
。这是因为我也需要日期。请澄清。谢谢!
您不应该自己提供时区偏移量,而应该通过环境提供实时时区规范。然后,localtime
将给出本地化时间。(gmtime
总是给你UTC。)假设您的代码看起来像
struct tm time_buffer, *localtime;
localtime = localtime_r(timep, &time_buffer);
printf("The hour is %in", localtime->tm_hour);
,然后通过:
调用程序$ TZ=Europe/Berlin my-program
,并得到柏林的当地时间,正确调整为夏令时。
如果您确实需要自己提供时区,请阅读man tzset
。
gmtime
为utc协调世界时。它总是一样,无处不在。localtime
是对当地时间的解释,取决于时区和夏令时是否有效不是。时区将由环境变量TZ
确定。用户应该将其设置为本地时区;如果这个变量未设置,则使用实现定义的默认值:通常是机器所在的时区。
相关文章:
- 为什么字符串比较的 == 运算符相对于任一字符串长度线性时间(似乎)?
- 如何在Arduino上将时间设置为中部时区?
- C++:将Unix时间转换为非本地时区
- 获取指定时区的日期和时间
- 如何以正确的时区从XTS索引中获取数字时间?
- 将带有时区的纪元时间转换为Excel格式的时间?
- 长度库,其实现方式类似于C++时间的计时
- 使用不同的整数组装字符数组以类似于日期和时间
- 快速将带有时区的日期时间字符串转换为 UNIX 时间戳(C++)
- 使用C 在特定时区获取当前时间
- 生成包含分数和时区的完整 iso 日期时间表示字符串
- C++:读取.BMP文件时出现问题;文件结束时间早于预期
- C :如何使用ICU通过给定的时区偏移来获得当前时间
- 使用Boost或STD在特定时区中获取当前的本地时间
- Poco 日期时间格式化程序 - 使用当前时区打印时间戳
- 无UTC时区中的正确时间总和
- C/C 获得时区偏移信息的时间戳
- Qt ISODate格式化的日期/时间,包括时区
- 将NTP时间设置为特定的时区
- time_t由time()返回,特定于时区