__DATE__来源于哪里,又去往哪里?

问题描述:通过__DATE__接口获取日期同shell脚本中$(date +%Y%m%d)得到结果相差一天;如__DATE__得到的日期是230611,$(date +%Y%m%d)得到的日期是230610,实际上$(date +%Y%m%d)得到的日期是正确的,实际问题为 __DATE__得到的日期比实际日期多一天
问题疑惑:
DATE 的值来源于哪里?是由谁控制的?什么时候被赋值?

__DATE__是宏,是程序编译预处理的时间。shell脚本得到的是脚本执行时间。
两者不能比吧