我有以下情况。我有 C++ 代码
1)SystemTimeToFileTime(&st, &m_Time)
st
在通过解析字符串中的值并手动分配给其成员来组装上述调用之前(请参阅下面的段落) -但只分配了年、月、日、小时、分钟和秒。
m_Time
是 FILETIME 类型的实例变量。
这个方法在一个名为的函数中被调用 ToDate
(这里是那些感兴趣的人的链接到该函数:http: //codepad.org/POoiKHMw,我已经记录了它的每一行)。基本上在该方法的最后被调用并传递给它SystemTimeToFileTime
的组装结构,我认为我可以轻松地在 C# 中复制该手动解析部分。st
这就是为什么我只询问一个功能 - SystemTimeToFileTime
。
之后有这样的功能:
2) dppDatetime_t RsDateTime::GetAsPrepaidTime() const
{
dppDatetime_t dt;// Just a custom structure, this is no problem to create in C#
SYSTEMTIME st = GetLocalTimeAsSystem();
dt.Year = st.wYear;
dt.Month = st.wMonth;
dt.Day = st.wDay;
dt.Hour = st.wHour;
dt.Minute = st.wMinute;
dt.Second = st.wSecond;
return dt;
}
GetLocalTimeAsSystem
定义为:
3) SYSTEMTIME RsDateTime::GetLocalTimeAsSystem() const
{
SYSTEMTIME st;
::FileTimeToSystemTime(&m_Time, &st);
return st;
}
我基本上需要复制上面提到的功能:1)、2)、3) C# 中的点。我真的很感激一些关于如何解决这个问题的帮助?如何在 C# 中实现相同的结果?
用户首先调用 1),然后 2)(但 2)在内部调用 3)。
我不能在 C# 中仅使用 DateTime 结构来实现上面所做的事情吗?
我不是在问如何在 ToDate 函数中进行手动解析,我自己也可以。
编辑:评论后,这里是一些输入/输出的示例:
这是可以在项目 1) 中接收的输入,该字符串将被解析并st
组装结构:
151010070707
输出,写入的内容dppDatetime_t
:
year:2015
month:10
day:10
hour:7
min:7
sec:7
PS 这些是我在调用 ToDate 函数的 C++ 代码中看到的格式字符串:
//YYMMDDhhmmss - e.g. "151030123030"
//DD.MM.YY
//DD.MM.YYYY - 01.01.2005
//DDMMYYYY