Steve, > On Jan 3, 2017, at 12:28, Steve Christensen <puns...@mac.com> wrote: > >> On Jan 3, 2017, at 8:26 AM, Sandor Szatmari <admin.szatmari....@gmail.com> >> wrote: >> >> Steve, >> >>> On Jan 3, 2017, at 10:17, Steve Christensen <puns...@mac.com> wrote: >>> >>> In the Date & Time preference panel, I assume that you're referring to the >>> option on the Clock tab. If so, those settings refer only to the menubar >>> clock display. >> I just think it's weird that there are two checkboxes. It seems odd to me >> that one would want a 24 hr clock in the menu bar but not anywhere else. > > The menubar clock settings also have options for displaying the time with or > without seconds, showing AM/PM, showing the day of the week, and showing the > date. These options all affect the final representation in the menubar, > independent of the locale settings, but you're focusing on just one of these. Yes, I agree. > > I have a little bit of experience with the menubar clock in the pre-OS X > world so I happen to know that those particular options were present as early > as 1992, so people have been living with the arrangement for a long time. > >>> If you notice in that same preference panel, on the Date & Time tab, there >>> is a message at the bottom that says, "To set date and time formats, use >>> the Language & Region preferences." Clicking the button takes you to that >>> other panel, and there you will find a checkbox that lets you select >>> 24-hour time. >> Yes, this is method 2 I referred to. If you check the Language & Region >> checkbox it overrides the Date & Time checkbox, enabling 24 hr time display >> in the menu bar clock and disabling the Date & Time checkbox. So clearly >> someone at Apple sees there is at least a one direction connection between >> these two checkboxes. > > That's merely an implementation detail related to a private system feature. > It's no different than if you were to put such an option in your app. I think it was the fact that Apple made a one direction connection allowing the clock's preference to be overridden is what made this unclear for me. > >>> The Language & Region settings are what specify the locale that is used for >>> formatting date and time values (among other things), which is why you see >>> those changes reflected in the NSDateFormatter methods. >> Yes, this discrepancy (IMHO) is what I was asking about. I don't see why >> the option for the clock display would be separated from this option. >> >> What I was asking for clarity on is the fact that there is no way to detect >> that the user prefers 24 hr time display if they only choose method 1, the >> Date & Time checkbox. Should I allow my users to set 12 hr time but >> override it to 24 hr time if the Language & Region checkbox is checked? >> This doesn't feel right. I feel like Apple left room for ambiguity in their >> design here. > > The locale settings, in the Language & Region preference panel, specifies the > user's current preferences in terms of general time formatting. The clock > settings specify the user's current preferences for the menubar clock. I > don't see the ambiguity. I guess Apple thought that setting the Language & Region 24 hr time setting was strong enough for them to disallow the menu bar clock from being displayed in 12 hr format when it, the Language & Region, preference is set.
I guess part of me felt like the the clock should either be totally in sync with the Language & Region setting, or totally independent. Understanding this better, I will have to just pick one implementation. Thanks for everyone's opinions. > > >>>> On Jan 2, 2017, at 10:16 PM, Sandor Szatmari >>>> <admin.szatmari....@gmail.com> wrote: >>>> >>>> I am working on a small application where the primary function is to >>>> display the time to the user. My hope was to honor the user's preference >>>> setting. I am either missing something or honoring the user's preference >>>> is harder than expected. >>>> >>>> So, there are two places to set 24 hr time display. >>>> >>>> 1. Date & Time preference panel >>>> 2. Language & Region preference panel >>>> >>>> The cocoa frameworks react differently depending on where you set this. >>>> >>>> If set by method 1, cocoa frameworks seem unaware of this setting and it >>>> appears this is cosmetic in that it only affects the display of the clock >>>> in the NSStatusBar. >>>> >>>> If set by method 2, cocoa frameworks reflect this and the Date & Time >>>> setting is disabled noting that the setting has been overridden. >>>> >>>> So if a user uses method 1, potentially unaware of method 2, how should >>>> one go about determining the user's intentions. >>>> >>>> There are deprecated methods using: (didn't try, it's deprecated) >>>> NSUserDefaults with the key NSShortTimeDateFormatString >>>> >>>> There are supported methods using: (works with method 2) >>>> NSString *format = [NSDateFormatter dateFormatFromTemplate:@"j" options:0 >>>> locale:[NSLocale currentLocale]]; >>>> BOOL is24Hour = ([format rangeOfString:@"a"].location == NSNotFound); >>>> >>>> Can anyone provide any clarity here? >>>> >>>> Sandor > _______________________________________________ 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