GetLocalTime 和 GetSystemTime 的区别

GetSystemTime()  该接口获取格林威治标准时间

GetLocalTime()  接口用来获取当地的当前系统日期和时间

如果在软件中一天检测一次的话,最好采用 GetLocalTime()。

在测试过程中,如果在2017年7月2号的话,在七点左右,你使用GetSystemTime()获取到的是日期是2017-07-01,与时间时候不符合。

但是到了10点以后,获取的话,就变成2017-07-02了。


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段代码的作用是在 D 盘根目录下生成一个以当前时间命名的文本文件,然后在文件中写入一行表头信息 "%%Time\tState\tY1\tZ1\tX1\tY2\tZ2\tX2\r\n"。之后,程序会不断地打开这个文件,写入一行表头信息,并关闭文件。这个过程会一直持续下去,因为 while(1) 表示这是一个死循环,程序会一直执行其中的代码。 不过这段代码也存在一些问题。首先,sFileName 指针没有初始化,需要分配内存来存储文件名。其次,每次循环都会先关闭文件,再重新打开,这样做效率比较低。正确的写法应该是先打开文件,然后进入循环,每次循环只需要写入一行即可。代码示例: ```cpp static bool g_isSetGZM_File = true; static FILE *tempfile = nullptr; static LPTSTR sFileName = new TCHAR[MAX_PATH]; if (g_isSetGZM_File) { SYSTEMTIME systime; GetLocalTime(&systime); _stprintf_s(sFileName, MAX_PATH, _T("D:\\CANPro\\GZSoluInfo_%04d%02d%02d_%02d%02d.txt"), systime.wYear, systime.wMonth, systime.wDay, systime.wHour, systime.wMinute); if (fopen_s(&tempfile, sFileName, "w") != 0) { MessageBox(NULL, _T("Can not open GZMfile!"), _T("ERROR"), MB_OK); return; } fprintf(tempfile, "%%Time\tState\tY1\tZ1\tX1\tY2\tZ2\tX2\r\n"); g_isSetGZM_File = false; } fprintf(tempfile, "%%Time\tState\tY1\tZ1\tX1\tY2\tZ2\tX2\r\n"); ``` 注意,在这段代码中,我使用了 GetLocalTime 函数来获取本地时间,而不是 GetSystemTime。此外,我使用了 _stprintf_s 函数来格式化文件名,并且在代码结尾处只写入了一行表头信息,因为每次循环只需要写入一行即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值