Discrepancy in displayed time between now() and Gateway tag

I added some code to get our PLCs roughly on the same time as our Ignition Gateway, and I noticed that depending on which path we used, we get times that are slightly different (4 minutes off).
Here is one method I used that gave me a later time in a numeric label:
dateextract({[System]Gateway/CurrentDateTime}, “hour”)

The earlier time showed up when I used this for the default system CurrentTime:
dateFormat(now(),{Root Container.Current Time.format})

The later time also showed up when I used now() for an expression tag:

I expect that the “now()” in the 2nd instance is looking at the client workstation, and the other two instances are looking at the Gateway’s clock, but I’m not sure.

Any thoughts here?

Now() returns the time on whatever computer executes it. Insist on synchronized clocks. Consider putting an alarm banner in your nav window that displays the discrepancy when it is more than a second or two.

So I was right: the discrepancy is between the Client & the Gateway. When running the “now” inside the tag, it was scoped to the Gateway, so they matched.