从GroupWise获取约会列表时,检索到的约会对象中的某些日期与GroupWise中的值不匹配,实际上它们将来会超过50年。例如,在下面的方法中,我会查找从2000年1月1日午夜或之后开始到2010年12月31日23:59:59结束的约会: -
public List<Appointment2> GetGroupWiseAppointments()
{
Application2Class gwApp = new Application2Class();
Account gwAccount = gwApp.Login(Type.Missing, Type.Missing, LoginConstants.egwPromptIfNeeded, Type.Missing, Type.Missing);
Folder gwCalendar = gwAccount.Calendar;
List<Appointment2> appointments = new List<Appointment2>();
MessageList gwAppointments = gwCalendar.Messages.Find("( APPOINTMENT AND BOX_TYPE = INCOMING AND START_DATE >= 2000/1/1 AT 0:0:0 AND DUEEND_DATE <= 2010/12/31 AT 23:59:59 )");
foreach(Appointment2 gwAppointment in gwAppointments)
{
appointments.Add(gwAppointment);
}
}
在我的测试数据中,所有约会都在今天的2周内过期,但返回的对象是58年3个月1天13小时和未来16分钟。更奇怪的是,每次检索它时都不会发生这种情况!
之前有没有人经历过这个问题并且找到了解决方案?
答案 0 :(得分:2)
我找到了解决这个问题的方法。我不太清楚为什么,但是当将List中的数据加载到我的数据类型时导致列表中的数据仍然被破坏。通过将其更改为加载到POCO,问题就消失了。
答案 1 :(得分:1)
你是否遇到了32位时间的问题?通常CTIME,32位时间,从1970年1月1日起计算为秒,mignight加一秒GMT。根据它的实现方式,它可能是符号整数,这意味着您可以参考1970年之前的日期,或者它可能不被视为已签名,在这种情况下它可以进入32位空间的后半部分(上部) 20亿)。
CTIME签署,在2037/2038年(2038年2月?用完了)。 CTIME未签约,原则上应该是另一个68年的好? (2038-1970 = 68岁)。
你是否有可能退休68年,而不是58年,并且这是CTIME签名/未签名转换的问题?