COleDateTime m_dt;
m_ctrlDateTime.GetTime(m_dt);
double d = dt.m_dt;
System::DateTime datum;
datum.FromOADate(d);
我正在尝试从 DateTimePicker 控件获取日期和时间,然后将 datum 的值设置为该值。基准是 System::DateTime (C#)。但是数据是这个“1/1/1 00:00:00”有什么问题?
COleDateTime m_dt;
m_ctrlDateTime.GetTime(m_dt);
double d = dt.m_dt;
System::DateTime datum;
datum.FromOADate(d);
我正在尝试从 DateTimePicker 控件获取日期和时间,然后将 datum 的值设置为该值。基准是 System::DateTime (C#)。但是数据是这个“1/1/1 00:00:00”有什么问题?
问题是最后一行:
datum.FromOADate(d);
DateTime::FromOADate
实际上是一个返回对象的静态成员函数DateTime
。在 C++ 术语中,您可以将其视为命名构造函数。
它不像普通成员函数那样初始化。datum
让您感到困惑的是,C++ 允许您使用 object 的实例调用静态成员。在 C# 中,这是不可能的,并且您会收到一个编译时错误,提醒您注意该问题。
像这样写代码,你会没事的:
COleDateTime m_dt;
m_ctrlDateTime.GetTime(m_dt);
double d = dt.m_dt;
System::DateTime datum = System::DateTime::FromOADate(d);
您还可以执行以下操作(但同样会令人困惑):
COleDateTime m_dt;
m_ctrlDateTime.GetTime(m_dt);
double d = dt.m_dt;
System::DateTime datum;
datum = datum.FromOADate(d);