It appears that xelatex composes PDF files with a Creator field containing the date at composing time (without taking into account SOURCE_DATE_EPOCH). We can reproduce the issue as follows:
$ SOURCE_DATE_EPOCH=0 xelatex minimal.tex
$ TZ=UTC pdfinfo minimal.pdf | grep Creat
In an up to date Debian/Sid schroot environment, the last command outputs:
(arm64-sid)hille@rasppi3:~$ TZ=UTC pdfinfo 1146748.pdf | egrep 'Creat|Prod'
Creator: XeTeX output 2026.09.16:2122
Producer: xdvipdfmx (20260317)
CreationDate: Thu Jan 1 00:00:00 1970 UTC
The minimal.tex is a minimal LaTeX input file, e.g.:
\documentclass{article}
\begin{document}
test
\end{document}
(arm64-sid)hille@rasppi3:~$ xetex --version
XeTeX 3.141592653-2.6-0.999998 (TeX Live 2026/Debian)
kpathsea version 6.4.2
Copyright 2026 SIL International, Jonathan Kew and Khaled Hosny.
There is NO warranty. Redistribution of this software is
covered by the terms of both the XeTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the XeTeX source.
Primary author of XeTeX: Jonathan Kew.
Compiled with ICU version 78.3; using 78.3
Compiled with zlib version 1.3.2; using 1.3.2
Compiled with FreeType2 version 2.14.3; using 2.14.3
Compiled with Graphite2 version 1.3.15; using 1.3.15
Compiled with HarfBuzz version 12.3.2; using 12.3.2
Compiled with libpng version 1.6.58; using 1.6.58
Compiled with pplib version v2.2
Compiled with fontconfig version 2.17.1; using 2.17.1
I.e. this is the XeTeX version as of TeX Live 2026. I did not check yet, if further changes to XeTeX were made in the TL SVN repo.
Anonymous
Thanks Hille. It's because XeTeX's dvi (er, xdv) output includes the usual dvi comment with the timestamp, and xdvipdfmx dutifully passes that along to the Creator: field. It happens with plain TeX too, not latex-specific. (It also happens with the dvi output from any tex, but no one cares about reproducible dvi, apparently.)
Anyway, I'll see if I can munge xetex to pay attention to SOURCE_DATE_EPOCH for the dvi comment. Unless someone else gets there first which, of course, would be great :).
Actually, I think the best fix is for you to set FORCE_SOURCE_DATE=1 as well as SOURCE_DATE_EPOCH. Changing the DVI comment is equivalent to changing \year \month \day, as far as the implementation goes.
Unless setting FORCE_SOURCE_DATE is problematic for you for some reason, this would be a far simpler solution than disentangling the two uses in the code.