> On 13 Nov 2014, at 15:23, John Joyce <[email protected]> wrote:
> 
> 
>> On Nov 13, 2014, at 9:54 PM, Jonathan Mitchell <[email protected]> 
>> wrote:
>> 
>> I have an app that must process sqlite hosted data that contains Gregorian 
>> UTC dates.
>> I want to ignore the local locale entirely and use Gregorian UTC through out.
>> 
>> At present I am carefully configuring all my NSDatePickers controls and all 
>> NSDateComponents calculations to use a specified Gregorian UTC timezoned 
>> calendar.
>> 
>> Is this the best I can do, or am I missing a trick somewhere?
>> 
>> .NET has the concept of a thread culture that defines this sort of thing for 
>> a given thread..
>> 
>> Thanks
>> 
>> Jonathan
>> 
> If you want to present things to users well, it is generally easier for 
> people to think in their own locale.
> Better to calculate than they have to think about the difference.
> If the user story is one where they would actively think in Gregorian UTC, 
> then it could be reasonable to do what you’re doing.
I think this is the case here.
The app performs financial calculations that are valid in one timezone.
If the user locates to a different timezone the apps calculations must still 
reference the initial timezone.
Failure to do this causes miscalculation.

> There are lots of conveniences added in the 10.9 SDK for calendrical 
> calculation, and in general, it is easier for all to work in 
> NSDate/NSTimeInterval (time since reference date) for calculation and then 
> use locales for presentation.
> In this case you might consider the DB to be another user of sorts that needs 
> its locale to be Gregorian UTC, so your work all happens in the intermediary 
> form and humans and the DB get the locale they like to use.
> If you have the calendar and time zone, the dates are easier to covert to the 
> non-locale form and that is easy to convert to any locale. (and vice versa).
> Or did I misunderstand something?

I don’t think so.
I was running into problems using the local locale (which utilises british 
summer time) when computing the number of days between dates (I use the 
NSCalendar category method shown below).

I suppose the question is equivalent to asking if it is possible to configure 
an individual app to return a predefined NSCalendar instance for [NSCalendar 
currentCalendar] (I severely doubt this is possible).
This would prevent me from introducing bugs by forgetting to configure my 
NSDatePicker s correctly etc.

Thanks

Jonathan

- (NSInteger)daysWithinEraFromDate:(NSDate *) startDate toDate:(NSDate *) 
endDate
{
    NSInteger startDay=[self ordinalityOfUnit:NSDayCalendarUnit
                                       inUnit: NSEraCalendarUnit 
forDate:startDate];
    NSInteger endDay=[self ordinalityOfUnit:NSDayCalendarUnit
                                     inUnit: NSEraCalendarUnit forDate:endDate];
    
    // note call ABS() for absolute difference
    return endDay-startDay;
}




_______________________________________________

Cocoa-dev mailing list ([email protected])

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to