c语言中内置宏__DATE__和__TIME__的时区问题

当前现象:

        在做c语言交叉编译的工作,有交叉编译工具链a和交叉编译工具链b,以及本地编译。

        (1)本地编译工具gcc,预编译后__DATE__与__TIME__为CST本地时区时间。

        (2)交叉编译工具链a中相应的gcc,预编译后__DATE__与__TIME__为UTC标准时区时间

        (3)交叉编译工具链b中相应的gcc,预编译后__DATE__与__TIME__为CST本地时区时间

 

想知道:(1)__DATE__和__TIME__是如何实现的

                 (2)__DATE__和__TIME__实际获取的时间是系统时间么?时区是如何换算选择的?

UTC时间减去8小时为北京时间