C中的Solaris时区(strftime上缺少%z)

我有一个应用程序写入另一个应用程序,需要提供系统的日期+时区。 我一直在使用带有%z参数的strftime来获取时区,并且它在Linux上运行良好。 然而,上周我们决定将它合并到solaris,以发现%z不存在。

有人建议使用%Z ,它会给出时区名称,但我需要%z给出时区的偏移格式,如+0100-0300

有人有想法吗?

%z不是POSIX。 您必须通过查找localtime和gmtime之间的差异来自行计算偏移量。

有关Perl示例, 请参阅此处 。