【发布时间】:2016-05-16 02:23:15
【问题描述】:
我正在尝试使用 ToString 方法将日期时间格式化为“c”形式的字符串:
string end = evt.End.DateTime.ToString("c", DataController.culture);
DataController.culture 是对有效区域性对象的引用,而 evt 是来自 Google Calendar v3 API 的 Event 对象。我确信 DateTime 属于 DatetTime 类,因为调试器在对象的类型中是这样说的。
但是我不断收到标题中提到的问题,为什么?甚至MSDN docs 也展示了如何使用该方法,但不知何故我不能:
Console.WriteLine(date1.ToString("d MMMM",
CultureInfo.CreateSpecificCulture("es-MX")));
// Displays 29 agosto
【问题讨论】:
-
将代码更改为
evt.End.DateTime.GetType().FullName。您认为是 DateTime 的类型的全名是什么? -
在查看那些是虚拟的文档时,这会让我相信它们在访问时可能实际上是不同的类型developers.google.com/resources/api-libraries/documentation/…
-
我没有考虑到该类型可能是可空的;傻我。这将解释观察到的行为,而我建议的测试——打印运行时类型——在典型情况下不会表明问题。 (因为如果值为 null,GetType() 会崩溃,如果不是,则返回 typeof(DateTime)。)
-
但这发生在编译时,是否意味着我必须将其转换为另一种类型或者我该如何处理?
-
另外,这怎么跑题了? Afaik 我在问一个关于特定语言的特定实现的问题,没有基于意见或类似的东西。我希望这是一个巨魔。