On Jan 3, 2017, at 8:02 PM, Sandor Szatmari wrote:

> Alex,
> 
> On Jan 3, 2017, at 19:51, Alex Zavatone <z...@mac.com> wrote:
> 
>> 
>> On Jan 3, 2017, at 3:02 PM, Sandor Szatmari wrote:
>> 
>>> Gary,
>>> 
>>>> On Jan 3, 2017, at 14:52, Gary L. Wade <garyw...@desisoftsystems.com> 
>>>> wrote:
>>>> 
>>>> Is there a problem with using +[NSDateFormatter 
>>>> localizedStringFromDate:dateStyle:timeStyle:]?  Depending on your needs, 
>>>> you might also consider +[NSCalendar autoupdatingCurrentCalendar].
>>> 
>>> I am looking for detecting whether or not the system defaults to 12 or 24 
>>> hr time.  The obj-c method I'm already 'parsing', 
>>> -dateFormatFromTemplate:::, returns a template string with well defined 
>>> formatting tokens that are easy to detect.  Plus they directly reflect the 
>>> user's Locale & Region settings.
>> 
>> I'd expect that would be a function of the language and the locale, possibly 
>> just the locale.  Do you care what it defaults to or what it's currently set 
>> to?
> 
> That's correct and I only care so far as I can determine it as being either 
> 12 or 24.  
> 
> The relevant methods are, -dateFormatFromTemplate::: returns a format string 
> which -localizedStringFromDate:dateStyle:timeStyle: consumes to produces a 
> human readable Date string.  I am not doing the second step described here.  
> Producing he actual string the view is separate from this state stored in my 
> model.
> 
> The relevant bits are: -dateFormatFromTemplate::: with a template of 'j' 
> returns the default format string for the Locale passed as the Locale 
> argument.  I am passing [NSLocale currentLocale].  
> 
> It is my understanding that any Locale which supports the 12 hr time format 
> must represent the AM/PM as 'a' in the format string provided to 
> -localizedStringFromDate:dateStyle:timeStyle:.  So therefore the presence of 
> 'a' indicates that the Locale is configured for 12 hr time.  Otherwise, it's 
> 24 hr time.  What I am relying on is the behavior of 
> -dateFormatFromTemplate::: when passed the 'j' template.  This behavior is 
> documented here 
> http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns.
>   It specifically mentions using 'j' to determine the presence AM/PM or not.  
> i.e. 12 or 24 hr time.
> 
> Might some Locales only support 12 or 24?  Maybe, maybe not.  But if I decide 
> to only rely on the setting from Locale & Region and my interpretations are 
> good this should not matter.  The user will never see 12 or 24 for locales 
> that do not support them.
> The specific section is 
> http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Day_Period_Rules.
> 
> Thanks,
> Sandor
> 
>> 
>> - Z
>> 


Well, I am sure that some default to 12 hour time (US) and others to 24.  I 
know that you're doing this on the Mac, but last time I checked, there were 
about 900 locales supported on iOS.  The point here is that you should be able 
to get the user's current locale and see what they is set for that.

It's possible that (even though this is an issue for the Mac) that you will 
find the approach you want looking for a solution on iOS.  Check their 
currentLocale

This has relevant data and on iOS, it would be [NSLocale currentLocale];
You could look into [NSLocale 
componentsFromLocaleIdentifier:myLocaleIdentifierString] and use [[NSLocale 
currentLocale] localeIdentifier]

Also, check here.

http://stackoverflow.com/questions/35435218/ios-time-in-24-hours-format

Good luck, I think you're almost there.

Cheers.

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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 arch...@mail-archive.com

Reply via email to