【发布时间】:2014-04-28 18:07:03
【问题描述】:
我正在处理存储的日期和时间。我将它们以字符串格式存储在 GMT 文件中
(即DDMMYYYYHHMMSS)。当客户端查询时,我将此字符串转换为struct tm,然后使用mktime 将其转换为秒。我这样做是为了检查无效的 DateTime。我再次将秒转换为字符串格式。所有这些处理都很好,完全没有问题。
但我有一个奇怪的问题:我将日期和时间存储在 GMT 中,区域设置也为 GMT。由于夏令时,我的语言环境时间更改为 GMT+1。现在,如果我查询存储的日期和时间,我会减少 1 小时,因为 mktime 函数使用区域设置,即 GMT+1,将 struct tm 转换为秒(tm_isdst 设置为 -1,所以 mktime 检测到夏令时等)。
任何想法如何解决这个问题?
【问题讨论】: