22 个解决方案
#1
DateTime.ToString("R")
#2
http://msdn.microsoft.com/zh-cn/library/zdtaw1bw(v=vs.110).aspx
#3
谢谢 caozhy 大人,但是如何从FILETIME类型转换到DateTime类型呢
#4
自己顶一下~~
#5
与其问人不如自己搜索下
http://msdn.microsoft.com/en-us/library/system.datetime.fromfiletime.aspx
http://msdn.microsoft.com/en-us/library/system.datetime.fromfiletime.aspx
#6
在google里面键入FILETIME to DateTime,第一条就是。
#7
谢谢 caozhy 斑竹大人的指教
。是我没把问题清楚,我原本的问题是这样的:
如下的一条cookies的记录,
codeID
4468-a4c8-6c9a309f5ef7
XXX.com/
1536
3806684160
31097165
718619264
30362911
3806684160和31097165是FILETIME的高位和低位,如何用这两个值合成一个FILETIME,并把这个FILETIME转换成
“ Sun,22-Feb-2099 00:00:00 GMT” 这样的字符串。
我目前的做法:
FILETIME ft = new FILETIME();
ft.dwHighDateTime = 3806684160;
ft.dwLowDateTime = 31097165;
ft.dwHighDateTime是int,而3806684160已经超过int32的取值区间,怎么办
如下的一条cookies的记录,
codeID
4468-a4c8-6c9a309f5ef7
XXX.com/
1536
3806684160
31097165
718619264
30362911
3806684160和31097165是FILETIME的高位和低位,如何用这两个值合成一个FILETIME,并把这个FILETIME转换成
“ Sun,22-Feb-2099 00:00:00 GMT” 这样的字符串。
我目前的做法:
FILETIME ft = new FILETIME();
ft.dwHighDateTime = 3806684160;
ft.dwLowDateTime = 31097165;
ft.dwHighDateTime是int,而3806684160已经超过int32的取值区间,怎么办
#8
UInt32
#9
我试过 ft.dwHighDateTime = Convert.ToUInt32(3806684160),会报错:
无法将类型“uint”隐式转换为“int”。存在一个显式转换(是否缺少强制转换?)。
因为ft.dwHighDateTime是int类型的
因为ft.dwHighDateTime是int类型的
#10
我看了一下系统的cookies文件夹里,有大量超过了int32取值范围的cookies记录,比如
YYID
F0450298DD946C280703DE
soso.com/
1088
2861622144
32488736
3120040106
30363010
是不是要进行什么位运算之类的啊?
YYID
F0450298DD946C280703DE
soso.com/
1088
2861622144
32488736
3120040106
30363010
是不是要进行什么位运算之类的啊?
#11
你将dwHighDateTime定义为uint不就可以了。
#12
dwHighDateTime是FILETIME类的一个属性,是系统定义的啊,如何定义成uint呢?
#13
斑竹大人,请指教~~~~
#14
#15
FILETIME类是你定义的,API结构体,你当然可以想怎么定义就怎么定义。
#16
小白...麻烦楼主写段代码明示...拜谢~~~~
#17
选择FILETIME,按F12。然后修改。
#18
按您说的,按f12 找到了System.Runtime.InteropServices.ComTypes.FILETIME.cs这个文件,进去,把int 改成了uint,保存。没用,FILETIME的dwHighDateTime属性还是int的。我发现System.Runtime.InteropServices.ComTypes.FILETIME.cs是在一个临时文件夹下面的,一直要vs2005一退出,这个文件马上就不见了。
#19
那只能这样
ft.dwHighDateTime = (int)(Convert.ToUInt32(3806684160) - (UInt32)0xffffffff);
ft.dwHighDateTime = (int)(Convert.ToUInt32(3806684160) - (UInt32)0xffffffff);
#20
ft.dwHighDateTime = (int)(Convert.ToUInt32(3806684160) - (UInt32)0xffffffff) - 1;
#21
FILETIME ft = new FILETIME();
ft.dwHighDateTime = (int)(Convert.ToUInt32(3806684160) - (UInt32)0xffffffff) - 1;
ft.dwLowDateTime = 31097165;
long qwResult = (((long) ft.dwHighDateTime) << 32) + ft.dwLowDateTime;
DateTime dt = new DateTime(qwResult);
string dtstr = dt.ToString("R");
还是不行哇
#22
报错:滴答数必须介于 DateTime.MinValue.Ticks 和 DateTime.MaxValue.Ticks 之间。
#1
DateTime.ToString("R")
#2
http://msdn.microsoft.com/zh-cn/library/zdtaw1bw(v=vs.110).aspx
#3
谢谢 caozhy 大人,但是如何从FILETIME类型转换到DateTime类型呢
#4
自己顶一下~~
#5
与其问人不如自己搜索下
http://msdn.microsoft.com/en-us/library/system.datetime.fromfiletime.aspx
http://msdn.microsoft.com/en-us/library/system.datetime.fromfiletime.aspx
#6
在google里面键入FILETIME to DateTime,第一条就是。
#7
谢谢 caozhy 斑竹大人的指教
。是我没把问题清楚,我原本的问题是这样的:
如下的一条cookies的记录,
codeID
4468-a4c8-6c9a309f5ef7
XXX.com/
1536
3806684160
31097165
718619264
30362911
3806684160和31097165是FILETIME的高位和低位,如何用这两个值合成一个FILETIME,并把这个FILETIME转换成
“ Sun,22-Feb-2099 00:00:00 GMT” 这样的字符串。
我目前的做法:
FILETIME ft = new FILETIME();
ft.dwHighDateTime = 3806684160;
ft.dwLowDateTime = 31097165;
ft.dwHighDateTime是int,而3806684160已经超过int32的取值区间,怎么办
如下的一条cookies的记录,
codeID
4468-a4c8-6c9a309f5ef7
XXX.com/
1536
3806684160
31097165
718619264
30362911
3806684160和31097165是FILETIME的高位和低位,如何用这两个值合成一个FILETIME,并把这个FILETIME转换成
“ Sun,22-Feb-2099 00:00:00 GMT” 这样的字符串。
我目前的做法:
FILETIME ft = new FILETIME();
ft.dwHighDateTime = 3806684160;
ft.dwLowDateTime = 31097165;
ft.dwHighDateTime是int,而3806684160已经超过int32的取值区间,怎么办
#8
UInt32
#9
我试过 ft.dwHighDateTime = Convert.ToUInt32(3806684160),会报错:
无法将类型“uint”隐式转换为“int”。存在一个显式转换(是否缺少强制转换?)。
因为ft.dwHighDateTime是int类型的
因为ft.dwHighDateTime是int类型的
#10
我看了一下系统的cookies文件夹里,有大量超过了int32取值范围的cookies记录,比如
YYID
F0450298DD946C280703DE
soso.com/
1088
2861622144
32488736
3120040106
30363010
是不是要进行什么位运算之类的啊?
YYID
F0450298DD946C280703DE
soso.com/
1088
2861622144
32488736
3120040106
30363010
是不是要进行什么位运算之类的啊?
#11
你将dwHighDateTime定义为uint不就可以了。
#12
dwHighDateTime是FILETIME类的一个属性,是系统定义的啊,如何定义成uint呢?
#13
斑竹大人,请指教~~~~
#14
#15
FILETIME类是你定义的,API结构体,你当然可以想怎么定义就怎么定义。
#16
小白...麻烦楼主写段代码明示...拜谢~~~~
#17
选择FILETIME,按F12。然后修改。
#18
按您说的,按f12 找到了System.Runtime.InteropServices.ComTypes.FILETIME.cs这个文件,进去,把int 改成了uint,保存。没用,FILETIME的dwHighDateTime属性还是int的。我发现System.Runtime.InteropServices.ComTypes.FILETIME.cs是在一个临时文件夹下面的,一直要vs2005一退出,这个文件马上就不见了。
#19
那只能这样
ft.dwHighDateTime = (int)(Convert.ToUInt32(3806684160) - (UInt32)0xffffffff);
ft.dwHighDateTime = (int)(Convert.ToUInt32(3806684160) - (UInt32)0xffffffff);
#20
ft.dwHighDateTime = (int)(Convert.ToUInt32(3806684160) - (UInt32)0xffffffff) - 1;
#21
FILETIME ft = new FILETIME();
ft.dwHighDateTime = (int)(Convert.ToUInt32(3806684160) - (UInt32)0xffffffff) - 1;
ft.dwLowDateTime = 31097165;
long qwResult = (((long) ft.dwHighDateTime) << 32) + ft.dwLowDateTime;
DateTime dt = new DateTime(qwResult);
string dtstr = dt.ToString("R");
还是不行哇
#22
报错:滴答数必须介于 DateTime.MinValue.Ticks 和 DateTime.MaxValue.Ticks 之间。