I know this might be crazy, but it feels realistic.
I got the idea from: https://devforum.roblox.com/t/help-or-daynight-cycle/761441 and: https://developer.roblox.com/en-us/api-reference/lua-docs/os
For example, I want the date and time to be 6:30 AM on June 6, 1940
It actually think this isn't too crazy I would recommend starting by building all historical events you want and some others and some landscape changes between years (something every 5 - 10 years) on top of this you want to assign certain months to certain seasons and have it so the trees used are different and the ground used/roof etc and finally for day time/night time you choose something such as Est and assign it to in game time through scripts(you want the time to be based off time in that region)
you will also want a client gui sending this data to ever and on the server it is processed(if you want it to change for all players) to know which map to load in and for each player to have a unique map you could do processing and loading in the map on the client if you load the map in on the server you want to store all the seasonal maps in server storage if you do it on the client store them in replicated storage
for the seasons you want each season of that year to be a separate map or have a script to manage colours (a script would work better because you could make it slowly change between seasons and have less work to do to do this on the script for winter you would want invisible blocks (for snow) which become visible again) you would also want to do a bit of a check of the weather in those years