Как определить, установлены ли часы на 12 или 24-часовой формат времени в Unity / C #? - PullRequest
0 голосов
/ 12 июня 2018

Как вы определяете, сконфигурированы ли часы операционной системы (показанные на панели задач) в 12 или 24-часовой формат времени в Unity / C #?

К сожалению, DateTimeFormatInfo.CurrentInfo.ShortTimePattern бесполезен, поскольку в нем используется текущая культура систем, которая может отличаться от настроенного формата часов.У вас есть какие-либо идеи, как получить системный в настоящее время активный формат часов?

1 Ответ

0 голосов
/ 12 июня 2018

В Windows вы можете получить строку формата Short time из реестра.По крайней мере, на моей машине это то, что системные часы в трее используют:

HKEY_CURRENT_USER\Control Panel\International\sShortTime

Если значение содержит нижний регистр 'h', то он отображает AM/PM формат.В противном случае это формат 24-hour (который использует верхний регистр 'H' для часа).

Вот метод, который читает ключ и возвращает true, если он находится в 24-часовом формате (примечаниечто для класса Registry вам нужно using Microsoft.Win32; в вашем пространстве имен):

private static string GetSystemTimeFormat()
{
    return Registry
        .GetValue(@"HKEY_CURRENT_USER\Control Panel\International", "sShortTime", "x")
        .ToString()
        .Contains("h")
        ? "AM/PM"
        : "24-hour";
}

Чтобы проверить это, я запустил следующий код:

private static void Main()
{
    Console.WriteLine($"Currently the system clock is {GetSystemTimeFormat()} format");

    GetKeyFromUser("Change the format and press any key to try again...");

    Console.WriteLine($"Now the system clock is {GetSystemTimeFormat()} format");

    GetKeyFromUser("\nDone! Press any key to exit...");
}

private static ConsoleKeyInfo GetKeyFromUser(string prompt)
{
    Console.Write(prompt);
    var key = Console.ReadKey();
    Console.WriteLine();
    return key;
}

Затем, после запроса,Я изменил «Короткое время» здесь (к которому я пришел, щелкнув правой кнопкой мыши на часах и выбрав «Настроить дату / время»):

![enter image description here

И вывод был следующий (который соответствовал тому, как часы выглядели в трее):

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...