我正在尝试使用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
答案 0 :(得分:5)
API documentation表示您尝试ToString()
的属性实际上是System.Nullable<DateTime>
,其与普通DateTime
的可用性考虑因素不同。为了调用您希望的ToString
方法,您需要从提供给您的可为空的结构中检索具体的DateTime
结构 - 在您的情况下,通过执行以下操作:
string end = evt.End.DateTime.Value.ToString("c", DataController.culture);
请注意,您通常需要先通过在调用evt.End.DateTime
之前检查HasValue
属性或任何其他方法来检查您的可空对象(例如ToString()
)是否实际具有值或财产。