#ifndef UTC_TIME_STAMP_H_
#define UTC_TIME_STAMP_H_
#include <windowsh>
#include <sys/timebh>
#include <timeh>
#if !defined(_WINSOCK2API_) && !defined(_WINSOCKAPI_)
struct timeval
{
long tv_sec;
long tv_usec;
};
#endif
static int gettimeofday(struct timeval tv)
{
union {
long long ns100;
FILETIME ft;
} now;
GetSystemTimeAsFileTime (&nowft);
tv->tv_usec = (long) ((nowns100 / 10LL) % 1000000LL);
tv->tv_sec = (long) ((nowns100 - 116444736000000000LL) / 10000000LL);
return (0);
}
//获取1970年至今UTC的微妙数
static time_t TimeConversion::GetUtcCaressing()
{
timeval tv;
gettimeofday(&tv);
return ((time_t)tvtv_sec(time_t)1000000+tvtv_usec);
}
#endif
以下代码我测试了一下,绝对是OK的。。希望能帮助到你,显示完全正常。。
CString str;//获取系统时间
CTime tm;
tm=CTime::GetCurrentTime();
str=tmFormat("%Y");//str=tmFormat("%Y-%m-%d %X");
year=atoi(str);
str=tmFormat("%m");//str=tmFormat("%Y-%m-%d %X");
month=atoi(str);
str=tmFormat("%d");//str=tmFormat("%Y-%m-%d %X");
day=atoi(str);
str=tmFormat("%X");//str=tmFormat("%Y-%m-%d %X");
hour=atoi(strLeft(2));
min=atoi(strMid(3,2));
sec=atoi(strMid(6,2));
getcurrenttime(),getsystemtime(),getlocaktime()这三个获取时间的函数都是获取定值的,如果需要时间走动,就需要增加定时器settimer(a,1000,null),每隔1s发送一次。可以在虚函数ontimer中实现
在VC的MFC中可以使用
CTime time = CTime::GetCurrentTime(); ///构造CTime对象
CString m_strTime = timeFormat("%Y-%m-%d %H:%M:%S"); //将获得的时间以年-月-日 时:分:秒的形式保存到m_strTime 字符串变量中,如果你需要保存到文本中,就再加上文件 *** 作的函数就可以了。
给你看段纯C+SDK代码吧,是创建时间 你把代码看明白 自己稍微改下就是修改时间了
先去吧这个结构体类型整明白WIN32_FILE_ATTRIBUTE_DATA
把GetFileAttributesEx这个API弄明白
case WM_COMMAND:if(lParam == (LPARAM)hBtn)
{
GetWindowText(hEdit, buf, 1000);
if(!strlen(buf))
{
MessageBox(hwnd, TEXT("文本框为空!"), TEXT("错误"), MB_OK);
}
else
{
WIN32_FILE_ATTRIBUTE_DATA file_attr;
FILETIME LocalFileTime;
SYSTEMTIME SysTime;
GetFileAttributesEx(buf, GetFileExInfoStandard, (LPVOID)(&file_attr));
FileTimeToLocalFileTime(&file_attrftCreationTime, &LocalFileTime);//时间转换msdn上拿来主义copy来的
FileTimeToSystemTime(&LocalFileTime, &SysTime);
sprintf(buf, "Time Generated: %02d-%02d-%02d %02d:%02d:%02d\n",
SysTimewYear, SysTimewMonth, SysTimewDay,
SysTimewHour, SysTimewMinute, SysTimewSecond);
MessageBox(hwnd, buf, TEXT("文件创建时间为"), MB_OK);
}
}
return 0;
以上就是关于VC++中如何 *** 作可以得到UTC时间===全部的内容,包括:VC++中如何 *** 作可以得到UTC时间===、VC++6.0下,C语言怎样提取系统时间且将其用于求时间差运算、在VC++mfc时间函数里面,getcurrenttime得到的时间怎么是一个定值,等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)