+1 voor @kubal5003.
De weergave van datums en tijden wordt altijd gecompliceerd door cultuur en tijdzone, dus het is altijd het beste om de laag die zich het dichtst bij de gebruiker bevindt (bijvoorbeeld de browser of lokale applicatie) te gebruiken om dit te doen. Het verplaatst ook een deel van de belasting van de database naar de computer van de gebruiker.
Er is echter een uitzondering voor door de server gegenereerde rapporten. Dus ik sla de naam/ID van de tijdzone op (soms alleen de offset/bias) om het begin van de dag te vinden. Dit kan systeembreed zijn of per klant/merk.
Voor webapplicaties detecteer ik meestal de standaardtijdzone van een gebruiker via geolocatie (dit is zelden verkeerd aangezien geogegevens nu vrij nauwkeurig zijn).