Вопрос:

Преобразование WMI Win32_OperatingSystem InstallDate в формат мм / дд / гггг (C # - WPF)

c# .net-3.5 wmi

6407 просмотра

3 ответа

0 Репутация автора

Мне интересно, как бы вы конвертировали дату и время из 20100131022308.000000-360.

Я пытался понять это некоторое время, и, похоже, никуда не денусь.

Я использую C # в приложении WPF.

Автор: user283907 Источник Размещён: 01.03.2010 08:55

Ответы (3)


6 плюса

14813 Репутация автора

Игнорировать все после периода:

string date = "20100131022308.000000-360";
date = date.Substring(0, date.IndexOf('.'));
DateTime actualDate = DateTime.ParseExact(date, "yyyyMMddHHmmss", CultureInfo.InvariantCulture);
Console.WriteLine(actualDate);

Это довольно простой формат даты.

Автор: David Morton Размещён: 01.03.2010 09:04

30 плюса

820289 Репутация автора

Класс System.Management.ManagementDateTimeConverter был создан для решения вашей проблемы. Используйте его метод ToDateTime (). Он правильно анализирует миллисекунды и смещение UTC в строке:

  DateTime dt = System.Management.ManagementDateTimeConverter.ToDateTime("20100131022308.000000-360");
  Console.WriteLine(dt);

Выход: 31.01.2010 2:23:08

Автор: Hans Passant Размещён: 02.03.2010 03:06

0 плюса

83413 Репутация автора

Если вам нужно разобрать даты в .NET Standard, вы можете сделать следующее:

public static bool TryParse(string date, out DateTime result)
{
    if (date == null) throw new ArgumentNullException("date");

    try
    {
        var timezonePos = date.IndexOfAny(new[]{'+', '-'});
        var isPlus = date[timezonePos] == '+';
        var timeZoneStr = date.Substring(timezonePos + 1);
        date = date.Substring(0, timezonePos);

        result = DateTime.ParseExact(date, "yyyyMMddHHmmss.ffffff", CultureInfo.InvariantCulture);

        //get utc by removing the timezone adjustment
        var timeZoneMinutes = int.Parse(timeZoneStr);
        result = isPlus
            ? result.AddMinutes(-timeZoneMinutes)
            : result.AddMinutes(timeZoneMinutes);

        return true;
    }
    catch (Exception)
    {
        return false;
    }
}
Автор: jgauffin Размещён: 18.03.2018 11:33
Вопросы из категории :
32x32