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

C中的Solaris时区(strftime上缺少%z),c,solaris,strftime,C,Solaris,Strftime,我有一个应用程序写入另一个应用程序,需要提供系统的日期+时区。我一直在使用strftime和%z参数来获取时区,它在Linux上运行得非常好。然而,上周我们决定将其合并到solaris,只是为了发现%z不存在 有人建议使用%Z,它将给出时区名称,但我需要%Z,它将给出带有偏移格式的时区,如+0100或-0300 有人有想法吗?%z不是POSIX。您必须通过查找localtime和gmtime之间的差异来计算偏移量 对于Perl示例

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

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


有人有想法吗?

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

对于Perl示例