这段代码给了我这个错误:
var n = "9/7/2014 8:22:35 AM";
var m = n.ToString("yyyy-MM-dd'T'HH:mm:ssZ");
Run Code Online (Sandbox Code Playgroud)
但是这段代码可以正常工作,并以适当的格式返回日期.
var n = DateTime.Now;
var m = n.ToString("yyyy-MM-dd'T'HH:mm:ssZ");
Run Code Online (Sandbox Code Playgroud)
任何人都知道为什么第一个代码不起作用以及如何使其工作?
sir*_*ide 22
您需要了解静态类型的工作原理.在第一个,类型n是string.该类型string确实有一个ToString()方法,但该方法不带参数并返回相同的字符串对象,或者它需要格式提供程序.由于您提供了参数,因此编译器假定您指的是第二个版本,但类型不匹配.
也许你正在尝试做的是将一个字符串转换日期第一,这是可以做到通过分析它DateTime的Parse或TryParse方法:
var n = DateTime.Parse("9/7/2014 8:22:35 AM");
Run Code Online (Sandbox Code Playgroud)
在这里,我们将a转换string为DateTime.类型n是DateTime.
我认为在你弄清楚C#的时候不要使用它是个好主意var.如果明确列出类型,您将更好地了解正在发生的事情,编译器将更早地标记错误.在这种情况下,你会在第一行得到错误,这很明显.它会抱怨为一个字符串分配一个字符串DateTime.没有奇怪的东西IFormatProvider,这一点都不明显.您的代码如下所示:
DateTime n = "9/7/2014 8:22:35 AM";
string m = n.ToString("yyyy-MM-dd'T'HH:mm:ssZ");
Run Code Online (Sandbox Code Playgroud)
在这个例子中,你将在第一行得到一个错误,然后你可以清楚地看到你正在尝试将类型的文字值(字符串"9/7/2014 8:22:35 AM")分配string给a类型的变量DateTime,它不能工作.
| 归档时间: |
|
| 查看次数: |
35631 次 |
| 最近记录: |