I must agree that it is a bit inconsistent. But for obvious reasons we cannot change existing functions. Solve it by script: set BarZone to UTC before calling tdm() or tom(), and set it back afterwards.

Or use the local day number, which is day(ldate(BarZone,0)).