将20130420151740.00000000+120转换为DateTime

本文关键字:DateTime 转换 00000000+120 20130420151740 | 更新日期: 2024-10-21 17:23:04

PowerShell Get-WMIObject以字符串形式返回DateTime字段,如下所示:20130420151740.000000+120

在PowerShell中键入以下命令:

Get-WMIObject -Class Win32_OperatingSystem | select -Property InstallDate | Get-Member

你会得到这样的结果:

TypeName: Selected.System.Management.ManagementObject
Name        MemberType   Definition                                  
----        ----------   ----------                                  
Equals      Method       bool Equals(System.Object obj)              
GetHashCode Method       int GetHashCode()                           
GetType     Method       type GetType()                              
ToString    Method       string ToString()                           
InstallDate NoteProperty string InstallDate=20160331115110.000000+120

在C#程序中,我需要转换这类字符串。这是什么格式的??这看起来像是Double加上UTC偏移量(以分钟为单位)。通常显示为2013-04-20 15:17:40 +2:00

如何将C#中的它转换为C#类型的DateTime?之类的东西

string stringdate = "20160331115110.000000+120";
var date = Convert.ToDateTime(stringdate);

string stringdate = "20160331115110.000000+120";
var date = DateTime.Parse(stringdate);

不要工作。他们抛出一个System.FormatException exception说:

Message=字符串未被识别为有效的DateTime。

将20130420151740.00000000+120转换为DateTime

有ManagementDateTimeConverter。ToDateTime正是此格式的。你可以这样称呼它:

using System.Management;
[...]
string stringdate = "20160331115110.000000+120";
DateTime dt = ManagementDateTimeConverter.ToDateTime(stringdate);