windows mobile 开发中遇到类型转换的问题。

TangJunLin2002 2010-09-15 11:43:52
CALLLOGENTRY结构中包含通话时间ftStartTime是uint64类型的。
public struct CALLLOGENTRY
{

public UInt32 cbSize;
public UInt64 ftStartTime;
public UInt64 ftEndTime;
public short iom;

public bool fOutgoing;
public bool fConnected;
public bool fEnded;

public bool fRoam;
public short cidt;
public IntPtr pszNumber;
public IntPtr pszName;
public IntPtr pszNameType;
public IntPtr pszNote;
};
强制转换为LONG后使用
DateTime StartTime = DateTime.FromFileTime((long)(entry.ftStartTime));

取得的时间是错误的,使用Convert来转换也不对。。。。

还想了几个办法但是都不对。。。。求各位大虾帮助了。给段Uint64转DateTime的代码来学习学习。
...全文
128 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sanhu871123 2010-12-27
  • 打赏
  • 举报
回复
大虾你的这个问题解决了么? 我现在也碰到了类似的问题 能给说下你最后是咋处理的么?
TangJunLin2002 2010-09-15
  • 打赏
  • 举报
回复
是Windows文件时间存储格式,但是FromFileTime方法得到的日期是错误的。。。
vrhero 2010-09-15
  • 打赏
  • 举报
回复
你得先看看该时间存储格式是什么样的...是标准格式、Windows文件时间、OLE时间还是Unix时间戳?

不搞清楚是没答案的...

ps:你用的FromFileTime方法仅适用于Windows文件时间存储格式...
TangJunLin2002 2010-09-15
  • 打赏
  • 举报
回复
晚上人多,我来顶一个。。看能得到答案不。
TangJunLin2002 2010-09-15
  • 打赏
  • 举报
回复
用PhoneGetCallLogEntry直接取的值,然后填充到结构中的。应该没有问题。
关键是结构中ftStartTime的定义是uint64......

要是直接ftStartTime.tostring()输出的话。是一长串数字。。

尝试过使用DateTime.FromFileTime 也不行。要么就是数字超出长度。要么就是转换出来的时间根本不对。
youth 2010-09-15
  • 打赏
  • 举报
回复
我也在开发mobile的程序,呵呵,帮顶下

你在转换之前调试下,看时间格式有没有问题
TangJunLin2002 2010-09-15
  • 打赏
  • 举报
回复
定一个。。。大侠们帮帮忙
TangJunLin2002 2010-09-15
  • 打赏
  • 举报
回复
晕。。。别光认同啊。。。给小弟讲讲结构中

public UInt64 ftStartTime;

这个怎么转换成时间显示出来啊。
liuh6 2010-09-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 tyang258 的回复:]
long是32位,UInt64是64位,不能转
[/Quote]

认同
tyang258 2010-09-15
  • 打赏
  • 举报
回复
long是32位,UInt64是64位,不能转

110,532

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧