特别急
20 个解决方案
#1
自己先up
#2
DWORD类型的以秒为单位时间?
先把这个时间变成FILETIME结构:
typedef struct _FILETIME {
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME;
再用FileTimeToSystemTime转成SYSTEMTIME结构
先把这个时间变成FILETIME结构:
typedef struct _FILETIME {
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME;
再用FileTimeToSystemTime转成SYSTEMTIME结构
#3
怎样才能转换成FILETIME格式呢,原谅小弟愚昧
#4
人气很差
#5
是你不会问,你说的“DWORD类型的以秒为单位时间”是什么东西,微软文档里没有这句话。你还是用英文原文描述吧
#6
恩,同上,说的清楚一点
#7
晕,就是别人用DWORD t,time(&t)函数得到的时间t啊,是别人得到通过网络发给我,我需要在wince上显示出2005-1-1 8:05:04这样时间
#8
嗯,干吗不让他直接转换成字符串发给你。
#9
很多东西都是定好的,不能因为我的这款运行wince的手机而改动什么!!!!
#10
我在MSDN上直接看到了代码,为什么你不看呢
int main( void )
{
struct tm *newtime;
char am_pm[] = "AM";
__time64_t long_time;
_time64( &long_time ); /* Get time as long integer. */
newtime = _localtime64( &long_time ); /* Convert to local time. */
if( newtime->tm_hour > 12 ) /* Set up extension. */
strcpy( am_pm, "PM" );
if( newtime->tm_hour > 12 ) /* Convert from 24-hour */
newtime->tm_hour -= 12; /* to 12-hour clock. */
if( newtime->tm_hour == 0 ) /*Set hour to 12 if midnight. */
newtime->tm_hour = 12;
printf( "%.19s %s\n", asctime( newtime ), am_pm );
}
上面用的是64位的,不知道你返回的是32的还是64的,不过替换一下就行,得到newtime
结构之后,直接赋值给SYSTEMTIME结构不就行了。
int main( void )
{
struct tm *newtime;
char am_pm[] = "AM";
__time64_t long_time;
_time64( &long_time ); /* Get time as long integer. */
newtime = _localtime64( &long_time ); /* Convert to local time. */
if( newtime->tm_hour > 12 ) /* Set up extension. */
strcpy( am_pm, "PM" );
if( newtime->tm_hour > 12 ) /* Convert from 24-hour */
newtime->tm_hour -= 12; /* to 12-hour clock. */
if( newtime->tm_hour == 0 ) /*Set hour to 12 if midnight. */
newtime->tm_hour = 12;
printf( "%.19s %s\n", asctime( newtime ), am_pm );
}
上面用的是64位的,不知道你返回的是32的还是64的,不过替换一下就行,得到newtime
结构之后,直接赋值给SYSTEMTIME结构不就行了。
#11
楼上的大哥我问的是在wince中!!!!!!!!!!!!
#12
第一次看到这样问问题的,楼主圆满了。 难道还要别人帮你写程序么?
#13
我意思是在WinCE中你替换相应函数就行了。
在WINCE 5.0 中,有新函数可用
_localtime64_s
_gmtime64_s
详细见
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnppcgen/html/nativedevicedev.asp
如果在5.0之前应该是不支持的,函数源码参见(VS.NET 2005)
X:\Program Files\Microsoft Visual Studio 8\VC\ce\crt\src\loctim64.c
在WINCE 5.0 中,有新函数可用
_localtime64_s
_gmtime64_s
详细见
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnppcgen/html/nativedevicedev.asp
如果在5.0之前应该是不支持的,函数源码参见(VS.NET 2005)
X:\Program Files\Microsoft Visual Studio 8\VC\ce\crt\src\loctim64.c
#14
就是找不到那样可以替代的函数才来这里问的啊,那些不知道的人就喜欢说风凉话,难道你就什么都知道吗? 在这里十分感谢热心回答我的问题的朋友门,谢谢大家!
谁知道怎么做还望赐教!
谁知道怎么做还望赐教!
#15
我不相信没人知道,耐心等待!
#16
time_t osBinaryTime; // C run-time, time, defined in <time.h> header.
time(&osBinaryTime); //
COleDateTime time3(osBinaryTime) // from time_t
用GetYear(),GetMonth(),GetDay(),GetHour(),GetMinute(),GetSecond()即可
time(&osBinaryTime); //
COleDateTime time3(osBinaryTime) // from time_t
用GetYear(),GetMonth(),GetDay(),GetHour(),GetMinute(),GetSecond()即可
#17
哦,看来只有MFC才行。
#18
如果你问“在wince中如何把time_t转换成SYSTEMTIME或者tm结构类型的时间”大家就明白了。我到现在都没有想明白的一点,就是为什么wince中5.0以前c运行时库对time相关的支持为什么这么差。
对于这个问题,其实你需要的是一个类似于标准c运行时库函数localtime()。在MFC for CE中MFC自己实现了一份这类函数,其实现在wcetime.cpp中。
如果你装了platform builder,可以找:
D:\WINCE410\OTHERS\MFC\SRC\wcetime.cpp
如果你装了eVC 4.0,可以找:
D:\Program Files\Windows CE Tools\wce410\STANDARDSDK_410\Mfc\Src\wcetime.cpp
你需要做的就是把这个文件拿过来直接用就是了。
对于这个问题,其实你需要的是一个类似于标准c运行时库函数localtime()。在MFC for CE中MFC自己实现了一份这类函数,其实现在wcetime.cpp中。
如果你装了platform builder,可以找:
D:\WINCE410\OTHERS\MFC\SRC\wcetime.cpp
如果你装了eVC 4.0,可以找:
D:\Program Files\Windows CE Tools\wce410\STANDARDSDK_410\Mfc\Src\wcetime.cpp
你需要做的就是把这个文件拿过来直接用就是了。
#19
谢谢楼上的几位兄弟的精彩回复,我想问题应该能解决了
#20
谢谢 singlerace(独行者)
#21
#1
自己先up
#2
DWORD类型的以秒为单位时间?
先把这个时间变成FILETIME结构:
typedef struct _FILETIME {
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME;
再用FileTimeToSystemTime转成SYSTEMTIME结构
先把这个时间变成FILETIME结构:
typedef struct _FILETIME {
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME;
再用FileTimeToSystemTime转成SYSTEMTIME结构
#3
怎样才能转换成FILETIME格式呢,原谅小弟愚昧
#4
人气很差
#5
是你不会问,你说的“DWORD类型的以秒为单位时间”是什么东西,微软文档里没有这句话。你还是用英文原文描述吧
#6
恩,同上,说的清楚一点
#7
晕,就是别人用DWORD t,time(&t)函数得到的时间t啊,是别人得到通过网络发给我,我需要在wince上显示出2005-1-1 8:05:04这样时间
#8
嗯,干吗不让他直接转换成字符串发给你。
#9
很多东西都是定好的,不能因为我的这款运行wince的手机而改动什么!!!!
#10
我在MSDN上直接看到了代码,为什么你不看呢
int main( void )
{
struct tm *newtime;
char am_pm[] = "AM";
__time64_t long_time;
_time64( &long_time ); /* Get time as long integer. */
newtime = _localtime64( &long_time ); /* Convert to local time. */
if( newtime->tm_hour > 12 ) /* Set up extension. */
strcpy( am_pm, "PM" );
if( newtime->tm_hour > 12 ) /* Convert from 24-hour */
newtime->tm_hour -= 12; /* to 12-hour clock. */
if( newtime->tm_hour == 0 ) /*Set hour to 12 if midnight. */
newtime->tm_hour = 12;
printf( "%.19s %s\n", asctime( newtime ), am_pm );
}
上面用的是64位的,不知道你返回的是32的还是64的,不过替换一下就行,得到newtime
结构之后,直接赋值给SYSTEMTIME结构不就行了。
int main( void )
{
struct tm *newtime;
char am_pm[] = "AM";
__time64_t long_time;
_time64( &long_time ); /* Get time as long integer. */
newtime = _localtime64( &long_time ); /* Convert to local time. */
if( newtime->tm_hour > 12 ) /* Set up extension. */
strcpy( am_pm, "PM" );
if( newtime->tm_hour > 12 ) /* Convert from 24-hour */
newtime->tm_hour -= 12; /* to 12-hour clock. */
if( newtime->tm_hour == 0 ) /*Set hour to 12 if midnight. */
newtime->tm_hour = 12;
printf( "%.19s %s\n", asctime( newtime ), am_pm );
}
上面用的是64位的,不知道你返回的是32的还是64的,不过替换一下就行,得到newtime
结构之后,直接赋值给SYSTEMTIME结构不就行了。
#11
楼上的大哥我问的是在wince中!!!!!!!!!!!!
#12
第一次看到这样问问题的,楼主圆满了。 难道还要别人帮你写程序么?
#13
我意思是在WinCE中你替换相应函数就行了。
在WINCE 5.0 中,有新函数可用
_localtime64_s
_gmtime64_s
详细见
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnppcgen/html/nativedevicedev.asp
如果在5.0之前应该是不支持的,函数源码参见(VS.NET 2005)
X:\Program Files\Microsoft Visual Studio 8\VC\ce\crt\src\loctim64.c
在WINCE 5.0 中,有新函数可用
_localtime64_s
_gmtime64_s
详细见
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnppcgen/html/nativedevicedev.asp
如果在5.0之前应该是不支持的,函数源码参见(VS.NET 2005)
X:\Program Files\Microsoft Visual Studio 8\VC\ce\crt\src\loctim64.c
#14
就是找不到那样可以替代的函数才来这里问的啊,那些不知道的人就喜欢说风凉话,难道你就什么都知道吗? 在这里十分感谢热心回答我的问题的朋友门,谢谢大家!
谁知道怎么做还望赐教!
谁知道怎么做还望赐教!
#15
我不相信没人知道,耐心等待!
#16
time_t osBinaryTime; // C run-time, time, defined in <time.h> header.
time(&osBinaryTime); //
COleDateTime time3(osBinaryTime) // from time_t
用GetYear(),GetMonth(),GetDay(),GetHour(),GetMinute(),GetSecond()即可
time(&osBinaryTime); //
COleDateTime time3(osBinaryTime) // from time_t
用GetYear(),GetMonth(),GetDay(),GetHour(),GetMinute(),GetSecond()即可
#17
哦,看来只有MFC才行。
#18
如果你问“在wince中如何把time_t转换成SYSTEMTIME或者tm结构类型的时间”大家就明白了。我到现在都没有想明白的一点,就是为什么wince中5.0以前c运行时库对time相关的支持为什么这么差。
对于这个问题,其实你需要的是一个类似于标准c运行时库函数localtime()。在MFC for CE中MFC自己实现了一份这类函数,其实现在wcetime.cpp中。
如果你装了platform builder,可以找:
D:\WINCE410\OTHERS\MFC\SRC\wcetime.cpp
如果你装了eVC 4.0,可以找:
D:\Program Files\Windows CE Tools\wce410\STANDARDSDK_410\Mfc\Src\wcetime.cpp
你需要做的就是把这个文件拿过来直接用就是了。
对于这个问题,其实你需要的是一个类似于标准c运行时库函数localtime()。在MFC for CE中MFC自己实现了一份这类函数,其实现在wcetime.cpp中。
如果你装了platform builder,可以找:
D:\WINCE410\OTHERS\MFC\SRC\wcetime.cpp
如果你装了eVC 4.0,可以找:
D:\Program Files\Windows CE Tools\wce410\STANDARDSDK_410\Mfc\Src\wcetime.cpp
你需要做的就是把这个文件拿过来直接用就是了。
#19
谢谢楼上的几位兄弟的精彩回复,我想问题应该能解决了
#20
谢谢 singlerace(独行者)