最近开始将应用程序从Windows Phone 8移植到Windows 8 RT,并遇到了一个奇怪的问题:无法找到将DateTime结构转换为双OLE日期的方法。
早些时候,有方法DateTime.FromOADate和DateTime.ToOADate来执行此操作,但现在它们不可用。
...
double oaNow = System.DateTime.Now.ToOADate(); //ToOADate undefined
...
有什么不对?
答案 0 :(得分:0)
无论出于何种原因,这都没有包含在RT目标中。它没有做任何特别的事情,它似乎可以携带。
您可以通过查看.NET Framework的Reference source来复制自己方法中的功能。
答案 1 :(得分:0)
尝试
double oaNow = System.DateTime.Now.Subtract(new DateTime(1899, 12, 30)).TotalDays;
根据文件
OLE自动化日期实现为浮点数,其积分分量是1899年12月30日午夜之前或之后的天数,其小数分量表示当天的时间除以24。例如,午夜,1899年12月31日以1.0表示; 1900年1月1日上午6点,由2.25表示; 1899年12月29日午夜以-1.0表示;和1899年12月29日上午6点用-1.25表示。