System::DateTime returns 1/1/1 的值 00:00:00
System::DateTime returns value of 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 控件获取日期和时间,稍后将基准值设置为该值。数据是 System::DateTime (C#)。但是数据是这个 "1/1/1 00:00:00" 有什么问题?
问题是最后一行:
datum.FromOADate(d);
DateTime::FromOADate
is actually a static member function that returns a DateTime
object. In C++ terms, you can think of it like a named constructor.
它不会像普通成员函数那样初始化datum
。让您感到困惑的是 C++ allows you to call static members using an instance of the 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);
COleDateTime m_dt;
m_ctrlDateTime.GetTime(m_dt);
double d = dt.m_dt;
System::DateTime datum;
datum.FromOADate(d);
我正在尝试从 DateTimePicker 控件获取日期和时间,稍后将基准值设置为该值。数据是 System::DateTime (C#)。但是数据是这个 "1/1/1 00:00:00" 有什么问题?
问题是最后一行:
datum.FromOADate(d);
DateTime::FromOADate
is actually a static member function that returns a DateTime
object. In C++ terms, you can think of it like a named constructor.
它不会像普通成员函数那样初始化datum
。让您感到困惑的是 C++ allows you to call static members using an instance of the 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);