我需要获得以下格式的时间戳,其中包括与UTC的时区偏移量:
2014-03-07T10:03:50+ 02:00
我正在尝试这种方法,但在没有正确格式化时区信息的情况下将其作为UTC:
time_t now;
time(&now);
char ts[sizeof "1970-01-01T00:00:00+00:00"];
strftime(ts, sizeof ts, "%FT%T%z", gmtime(&now));
printf("Timestamp: %s\n\n", ts);
Run Code Online (Sandbox Code Playgroud)
这就是结果:
2014-03-07T09:29:40+ 0200
man 7 strftimetm根据格式规范format对时间进行格式化。其中一种格式%z默认输出数字时区,小时和分钟之间hhmm不带冒号:,
%z:时区+hhmm或-hhmm数字(即相对于 UTC 的小时和分钟偏移量)。(苏)