String PowerShell中字符串到日期时间的转换

String PowerShell中字符串到日期时间的转换,string,datetime,powershell,String,Datetime,Powershell,我试图将文件的时间戳值转换为日期时间,以比较两个日期时间差 数据的格式为24122014_022257。我需要将其转换为日期时间,以便比较值: $usdate="24122014_022257" $dateParts = $usdate -split "_" $final = $dateparts[0] + $dateParts[1] 我该怎么做?您可以使用ParseExact方法: [datetime]::ParseExact('24122014_022257','ddMM

我试图将文件的时间戳值转换为日期时间,以比较两个日期时间差

数据的格式为24122014_022257。我需要将其转换为日期时间,以便比较值:

$usdate="24122014_022257"   
$dateParts = $usdate -split "_"   
$final = $dateparts[0] + $dateParts[1]   

我该怎么做?

您可以使用ParseExact方法:

[datetime]::ParseExact('24122014_022257','ddMMyyyy_HHmmss',$null)

Wednesday, December 24, 2014 2:22:57 AM

我会做到的。您可以在第二个参数中指定自定义日期时间格式。您可以将第三个参数保留为null,或者指定要使用的区域性(若要导入从具有不同时区的系统生成的文件,则可能会有影响)


获取日期2412214022257


2014年12月24日星期三凌晨2:22:57

使用
[Globalization.CultureInfo]::不变量文化
而不是
$null
。例如,如果格式字符串有AM/PM指示符,而系统的区域设置没有,则后者将引发错误。如果我正在转换使用AM/PM指示符的数据,我通常只将“tt”指示符添加到格式字符串中。我不认为添加选项来处理AM/PM指示符中的文化差异有什么意义在我的系统上,“[datetime]::ParseExact('24/12/2014','dd/MM/yyyy',$null)`引发了一个异常,但是
[datetime]::ParseExact('24/12/2014','dd/MM/yyyy',[Globalization.CultureInfo]::InvariantCulture)
工作正常。@miracle173这很奇怪<代码>[DateTime]:ParseExact('24/12/2014','dd/MM/yyyy',$null)对我来说很好。
$usdate="24122014_022257"
[datetime]::ParseExact($usdate,"ddMMyyyy_HHmmss", [System.Globalization.CultureInfo]::CurrentCulture)