Преобразовать числа во время?

Существует ли гладкий способ преобразовать простые числа (армейское включенное время) к формату времени (пополудни формат)? Я могу сделать утомительный подход, но я просто задавался вопросом, было ли иначе

0800 => 8:00

2317 => 23:17

7
задан MrM 11 June 2010 в 13:38
поделиться

3 ответа

    DateTime dt = DateTime.ParseExact("0800", "HHmm", CultureInfo.InvariantCulture);
    string timestring = dt.ToString("h:mm tt");

Коды форматов см. В документации .

14
ответ дан 6 December 2019 в 12:46
поделиться

Надеюсь, это направит вас в нужном направлении:

    string time = "0800";
    DateTime dt = DateTime.ParseExact(string.Format("{0}:{1}", time.Substring(0, 2), time.Substring(2, 2)), "HH:mm", CultureInfo.InvariantCulture);
    MessageBox.Show(string.Format("{0:h:mm tt}", dt));

    time = "2345";
    dt = DateTime.ParseExact(string.Format("{0}:{1}", time.Substring(0, 2), time.Substring(2, 2)), "HH:mm", CultureInfo.InvariantCulture);
    MessageBox.Show(string.Format("{0:h:mm tt}", dt));
1
ответ дан 6 December 2019 в 12:46
поделиться

Используйте DateTime.TryParse с нужной строкой формата.

Если вы можете принять несколько форматов, вам нужно будет вызывать каждый по очереди, пока не найдете подходящий - что, как я полагаю, вы имеете в виду под «утомительным подходом».

1
ответ дан 6 December 2019 в 12:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: