我正在尝试使用 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
最佳答案
API documentation表示您正在尝试访问的属性 ToString()
实际上是一个System.Nullable<DateTime>
,它与普通 DateTime
有不同的可用性考虑。为了调用ToString
你想要的方法,你需要检索一个具体的 DateTime
从提供给您的可为空的结构中获取 - 在您的情况下,通过执行以下操作:
string end = evt.End.DateTime.Value.ToString("c", DataController.culture);
请注意,您通常需要首先通过检查 evt.End.DateTime
来检查可为 null 的对象(例如 HasValue
)是否确实具有值。调用之前的属性ToString()
或任何其他方法或属性。
关于c# - ToString 没有重载方法需要 2 个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37245838/