将DateTime转换为人类可读的格式(MSFT_MpComputerStatus类)

时间:2019-05-17 07:55:50

标签: c# datetime wmi windows-defender

也许这是一个愚蠢的问题,但是我有一个字符串,其日期看起来像这样:20190516060354.000000+000,想知道我是否可以将其自动转换为日期格式,例如dd-mm-YYYY hh:mm

重要:我不想手动解析日期。

日期来自WMIv2类MSFT_MpComputerStatus => AntivirusSignatureLastUpdated

2 个答案:

答案 0 :(得分:2)

使用适当的System.Management Utility方法

对于完全这种情况:

System.Management.ManagementDateTimeConverter.ToDateTime(string)方法。

例如在PowerShell

[System.Management.ManagementDateTimeConverter]::ToDateTime('20190516060354.000000+000')       
Wednesday, May 15, 2019 11:03:54 PM

或C#

using System;
using System.Management;
System.DateTime dt = ManagementDateTimeConverter.ToDateTime("20190516060354.000000+000");
Console.WriteLine(dt);

答案 1 :(得分:1)

DateTime.ParseExact / TryParseExact

您必须使用.Net工具手动解析它。

您可以执行以下操作:

string inputDate = "20190516060354.000000+000";
DateTime parsed = DateTime.ParseExact(inputDate, "yyyyMMddHHmmss.ffffffzz0", CultureInfo.InvariantCulture);
string output = parsed.ToString(); // Or .ToString("dd-mm-YYYY HH:mm")

如果不确定格式,则可以使用TryParse方法,并记录错误以进行调整。或使用在Parse / TryParse方法中允许多种格式的重载。

更多信息

https://www.c-sharpcorner.com/blogs/date-and-time-format-in-c-sharp-programming1

我仍然对最后0表示什么或带有三个零的+000表示怀疑。