将WMI Win32_OperatingSystem InstallDate转换为mm / dd / yyyy格式(C# – WPF)

我想知道你如何将日期和时间从20100131022308.000000-360转换。

我一直试图弄清楚它一段时间,我似乎无法到达任何地方。

我在WPF应用程序中使用C#。

System.Management.ManagementDateTimeConverter类用于解决您的问题。 使用其ToDateTime()方法。 它正确解析字符串中的毫秒和UTC偏移量:

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

输出:1/31/2010 2:23:08 AM

在句号结束后忽略所有内容:

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

这是一个非常简单的日期格式。

如果需要在.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; } }