系统:: DateTime返回1/1/1 00:00:00的值

System::DateTime returns value of 1/1/1 00:00:00

本文关键字:的值 返回 DateTime 系统      更新时间:2023-10-16
COleDateTime m_dt;
m_ctrlDateTime.GetTime(m_dt);
double d = dt.m_dt;
System::DateTime datum; 
datum.FromOADate(d);

我正在尝试从DateTimePicker控件中获取日期和时间,然后在将基准值设置为该值的情况下。数据是系统:: DateTime(C#)。但是基准是" 1/1/1 00:00:00"有什么问题?

问题是最后一行:

datum.FromOADate(d);

DateTime::FromOADate实际上是一个静态成员函数,返回 a DateTime对象。用C 术语,您可以将其视为命名构造函数。

它确实像普通成员函数一样初始化 datum。令人困惑的是,C 允许您使用对象实例调用静态成员。在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);