What's the best way to determine if the user has set the "24-hour clock" setting to true in Settings-Date+Time on the Windows Phone ?
Can I get this information through the CurrentCulture (CultureInfo) ? I had no luck in finding it.
What's the best way to determine if the user has set the "24-hour clock" setting to true in Settings-Date+Time on the Windows Phone ?
Can I get this information through the CurrentCulture (CultureInfo) ? I had no luck in finding it.
The system clock type can be retrieved using:
string clockType = Windows.System.UserProfile.GlobalizationPreferences.Clocks.FirstOrDefault();
This will return the string 24HourClock
if the 24 hour setting is on in the device settings or 12HourClock
if the setting is off.
The DateTimeFormatInfo.CurrentInfo.ShortTimePattern
way of getting the hour is tied to the culture, and not to the option showing whether 24-hour time is enabled or not. So you will get h:mm tt
for English (United States) and HH:mm
for German (Germany).
At this moment, you cannot get this system setting.
On the back of Dennis' answer, you should be able to determine 24-hour time using String.Contains
:
bool is24HourTime = DateTimeFormatInfo.CurrentInfo.ShortTimePattern.Contains("H");
For japanese developers, please note.
DateTimeFormatInfo.CurrentInfo.ShortTimePattern
in the culture ja-JP
will return the same string H:mm
, regardless of if the phone setting for 24-Hour time is enabled or not.