String 从给定字符串转换日期
我需要识别这个包含日期的字符串 2015110171937.050162+060String 从给定字符串转换日期,string,powershell,datetime,String,Powershell,Datetime,我需要识别这个包含日期的字符串 2015110171937.050162+060 它是对象的CreationDate属性getwmiobject-Class win32\u进程。我需要将其用作New TimeSpancmdlet的输入。因此,它应该是有效的[DateTime]对象,但我不知道如何转换它 小数点前的部分是“2015110171937” 或2015-11-1017:19:37 这是你的日期/时间戳。忽略其余部分。PowerShell使用两种方法扩展每个WMI对象ConvertFrom
它是对象的
CreationDate
属性getwmiobject-Class win32\u进程
。我需要将其用作New TimeSpan
cmdlet的输入。因此,它应该是有效的[DateTime]
对象,但我不知道如何转换它 小数点前的部分是“2015110171937”
或2015-11-1017:19:37
这是你的日期/时间戳。忽略其余部分。PowerShell使用两种方法扩展每个WMI对象
ConvertFromDateTime
和ConvertToDateTime
,这两种方法允许您在WMI字符串和.NET[DateTime]
表示形式之间转换日期和时间。此方法实际上只是引用了[System.Management.ManagementDateTimeConverter]
静态方法ToDmtfDateTime
和ToDateTime
字符串“2015110171937.050162+060”是WMI日期时间格式,相当于以下格式的数据类型(yyyymmddHHMMSS.mmmmmm suuu),其中
- mmmmmm秒内的六位数微秒(000000到 999999). 您的实现不必支持评估 使用此字段。但是,此字段必须始终显示给 保留字符串的固定长度特性
- s加号(+)或减号(-)表示正或负 与协调世界时(UTC)的偏移量
- 三位数偏移量 指示发起时区的分钟数 偏离UTC。对于WMI,鼓励但不要求 将时间转换为GMT(UTC偏移量为零)
(Get-WmiObject Win32_OperatingSystem).InstallDate
您可以使用PeterSerAl提及或通过此快捷方式进行一次隐藏
([WMI]'').ConvertToDateTime((Get-WmiObject Win32_OperatingSystem).InstallDate)
但请注意,ConvertToDateTime()和[System.Management.ManagementDateTimeConverter]存在一个错误::在Powershell中,ToDateTime()不尊重本地时区,并且会给您提供错误的日期。分析,但由于篇幅很短,您必须重新启动Powershell shell或ISE才能使其工作 尝试强制转换[System.DateTime]
Get-WmiObject-Class win32|process | ForEach对象{$\u0.ConvertToDateTime($\u0.CreationDate)}
“我需要将其用作New-TimeSpan cmdlet的输入”您似乎不符合OP的要求:)工作起来很有魅力。谢谢:-)。