0

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

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

日期来自 WMIv2 类 MSFT_MpComputerStatus => AntivirusSignatureLastUpdated

4

2 回答 2

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);
于 2019-05-17T08:16:51.493 回答
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 的含义。

于 2019-05-17T08:07:47.570 回答