如何在C/C++中在本地时间和UTC之间转换日期时间是最好的方法?
“日期时间”指包含日期和时间的时间表示。我可以使用time_t
,struct tm
或任何其他使其成为可能的表示。
我的平台是Linux。
这是我要解决的具体问题:我得到了一对包含儒略日和一天中的秒数的值。 这些值在GMT中。 我需要将其转换为本地时区的“YYYYMMDDHHMMSS”值。 我知道如何将儒略日转换为Y-M-D,并且显然很容易将秒转换为HHMMSS。 但是,棘手的部分是时区转换。 我相信我可以找到解决方案,但我更愿意找到一个“标准”或“众所周知”的方法,而不是摸索着解决问题。
可能相关的问题是在C中获取时区的夏令时转换日期
tm_gmtoff
的问题,而这个列表非常短),但是:你能否举个例子来修改tm_gmtoff
并使其有用?当我这样做时,它似乎不会改变例如strftime(buf, BUFSIZ,“%FT%T%z(%+%z)”,tm)
的输出。?? - lindes_mkgmtime(&tm);
,它将解释struct tm
为UTC而不是当前时区。 - dash-tom-bang