When Would You Prefer DateTime Over DateTimeOffset

Sometimes you really just want to represent a “local” (timezone unaware) date and time rather than an instant in time. To be honest it’s more often useful to represent just a time – e.g. “wake me up at 8am, regardless of timezone” – but date and time could be useful too.

I agree that for the vast majority of cases, DateTimeOffset is a better fit. It does strike me as odd that there isn’t a DateTimeTimeZone struct which has both the instant and its timezone though… an offset doesn’t actually give you all the information you need. (For instance, given a DateTimeOffset, you don’t know what the time will be 24 hours later, because you don’t know when DST might kick in.)

If you want that kind of structure, I have a very crude implementation in another answer. I’m sure it could be improved very easily 🙂

Leave a Comment