I wrote something before about when you do and don’t want to make use of timezones:
[How to get the delta value from Time Zone - #9 by rupert]
Here an the example from that, when timezone is irrelevant:
"You go on holiday and book a hire car to collect at the airport. You know your flight is due to get in at 11 and its going to take a while to get out of the airport so you put 11:30 as the collection time for the car. It doesn’t really make sense to translate this into UTC as it is a local event only. If you translate it into UTC and email the user to remind them of the pick up time in their home local time the message might say “remember your car booking at 03:30”. In that case you probably don’t even want to use Time.Posix
although it does not contain the timezone so can be used for local times. I would just create my own data type to hold the local times for this application:
type alias LocalTime =
{ hour : Int
, minute : Int } -- That's all that's really needed for the car rental app.
"
This also explains why I am not a fan of using Posix without a timezone; the default timezone is UTC and that might get added back into something that does not have a timezone; the Posix is easy to convert into other timezones not intended with erroneous results.
It depends on exactly what we are talking about, but I would think that a January report for a business (or more likely a quarterly report), would not be a timezone dependent thing. Even if it were a multinational say, you would just add up the turnover/profit/whatever across all worldwide subsidiaries from the 1st to the 31st of January in each of their respective local dates. It is still meaningful to speak of the month of January, even though its exact start and end moments are not singularly defined concepts.