If using OOTB Pega internal authentication, which is notrecommended for Production, you could write an Activity to change pyDefaultTimeZone for every Operator record as opposed to doing this manually.
FYI: According to Help, users can temporarily change their own locale;
8>< - - - - - - - - ><8
When you sign on, Pega 7 Platform uses the time zone and output locale setting in Operator ID data instance as default values. Use this tool to set temporary values for your current time zone and currency, to control the display of numbers and dates, and to control the dictionary used for spellchecking.
Changing the locale for your current session
To change the locale for the current session, you need to override some locale settings.
Ah, Time Zones and Java is a delicate issue. Certainly when you need historical date and time values as for trading prices etc. Riyadh had a time zone difference with GMT of 3.07 minutes between 1985 and 1988 if I remember correctly. And you need to take Summer and Winter time issues into account. Java standard libraries are not that good at handling this and what you need to do is to import and use some time library like Joda time etc. Keep in mind Java does a lot of automagic things when it comes to display date and times. Most of it is about transforming to the time zone of the current viewer on that moment. You might need to do a lot of calculation to actually show a date and time as a different time zone to the current users as a time in the past. I suggest you create a special control for this if the previous suggestions, from other people, are not enough.
Anyhow this is a question that goes beyond any of our courses in Pega Academy and I suggest you to put this question in one of our product forums.