I'm not sure if there's a Windows equivalent, but on Linux we use something like this...
Each user is assigned a location, and each location is assigned a time zone (matching those in /usr/share/zoneinfo)
So for local time we just issue:
READ RECORD("| TZ="+TZ$+" date +%Y%m%d%H%M%S")USERTIME$
where
TZ$="Canada/Pacific" ! or Canada/Mountain or Canada/Central or America/Toronto or Greenwich etc