When you have multiple locales enabled in your Salesforce Org and the date function of your code uses the locale set in the system for the user, the Thai locale will increase the years by 543. This was actually done by design to follow the user’s locales.
Wikipedia : “The Thai solar calendar, was adopted by King Chulalongkorn (Rama V) in AD 1888 as the Siamese version of the Gregorian calendar, replacing the Thai lunar calendar as the legal calendar in Thailand (though the latter is still also used, especially for traditional and religious events). Years are now counted in the Buddhist Era (B.E.)) which is 543 years ahead of the Christian/Common Era.”
Fix: You will need to use another locale for the user or calculate off the 543 in all date functions in your code for Locale : Thailand.