system.string的方法问题


PowerShell交流中心system.string的方法问题
0
RobZH asked 8 年 ago

一直被一个问题困扰:从system.string对象的方法来看,是有ToInt32, ToDateTime,ToDouble这些方法的。但是我想调用这些方法的时候却提示类似“找不到“ToDateTime”的重载,参数计数为:“0””的信息。很希望大家可以告诉我这个问题是什么原因,怎么解决。谢谢!

我的环境:Powershell 4.0,安装了.Net从2.0到4.5的全部版本

下面的代码可以重复我的问题:
$myStr = “2016-06-06”

$myStr | gm | where {$_.Name -like “To*}

$myStr.ToDatetime()

 

1 Answers
0
Best Answer
Mooser Lee 管理员 answered 8 年 ago

找不到“ToDateTime”的重载,是因为ToDateTime的完整方法签名为:
OverloadDefinitions
——————-
datetime IConvertible.ToDateTime(System.IFormatProvider provider)

你需要给它传递一个System.IFormatProvider参数。
比如:

PS> "2016-8-11".ToDateTime([CultureInfo]::CurrentCulture)

2016年8月11日 0:00:00
RobZH replied 8 年 ago

太感谢了!试了一下,ToInt32也是一样的解决方式。