VC++中如何 *** 作可以得到UTC时间===

VC++中如何 *** 作可以得到UTC时间===,第1张

#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得到的时间怎么是一个定值,等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9874793.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存