[VC]设置本机系统时间

[VC]设置本机系统时间 2010-10-20 15:53 阅读(1)
 
 

[VC]设置本机系统时间

由于OS是Win7,可能是由于权限的问题,调用SetLocalTime函数不成功,

于是乎我又调用了SetSystemTime函数,结果可以更新系统时间,但是却比我传入的时间晚了8个小时

你知道为什么呢?

查查资料吧,呵呵~~~

~~哈哈,原来,原因如下:

GetSystemTime 以及SetSystemTime函数返回的是 协调通用时间(UTC,也称为格林威治时间)。
  若要获得本地时间,必须加上或减去您所在的时区与 UTC 之间相差的小时数。
  例如,UTC 中的 24:00(午夜)是纽约的 19:00 -- 负 5 小时的偏移量 (UTC–5)。
  若要确定您所在时区的 UTC 偏移量,请参见“日期和时间属性”的“时区”选项卡。

因此,我采用如下的代码来处理:(dtInputTime是传入的时间)

  COleDateTimeSpan dtsOffset(0, 8, 0, 0); // UTC+8东八区
  COleDateTime dtUTC = dtInputTime - dtsOffset;
  COleDateTime dtNow = dtUTC;
  {
   SYSTEMTIME SystemTime;   
   SystemTime.wYear      = dtNow.GetYear();
   SystemTime.wMonth     = dtNow.GetMonth();
   SystemTime.wDayOfWeek = dtNow.GetDayOfWeek();
   SystemTime.wDay       = dtNow.GetDay();
   SystemTime.wHour      = dtNow.GetHour();
   SystemTime.wMinute    = dtNow.GetMinute();
   SystemTime.wSecond    = dtNow.GetSecond();
   
   // 修改本机系统时间
   if (SetSystemTime(&SystemTime))
   {
    CString strLogMessage;
    strLogMessage.Format(L"更新系统时间成功!");
   }
   else
   {
    CString strLogMessage;
    strLogMessage.Format(L"更新系统时间失败[SetSystemTime返回0]!");
   }
  }

南来地,北往的,上班的,下岗的,走过路过不要错过!

======================个性签名=====================

之前认为Apple 的iOS 设计的要比 Android 稳定,我错了吗?

下载的许多客户端程序/游戏程序,经常会Crash,是程序写的不好(内存泄漏?刚启动也会吗?)还是iOS本身的不稳定!!!

如果在Android手机中可以简单联接到ddms,就可以查看系统log,很容易看到程序为什么出错,在iPhone中如何得知呢?试试Organizer吧,分析一下Device logs,也许有用.

我的开发工具

对于博客园里的网友,不敢称为叫"程序员"的人,你们攻击性太强,看来你们是不会想到我的用意的.园子里有不少人都非常喜欢Jeffrey,是因为它的第一版 框架设计 CLR via C#.
可是从第一版到现在的第三版,没有看到真正底层的东西,内容仅仅是比MSDN文档更丰富一些,可能是我的要求太高了吧.
也就是因为它很多时候会接触到微软开发人员,会经常聊聊某些问题而已,而它又将这些问题反应到书中.也许它就像一个小记者.
它的年龄大我们不多,我的孩子与它小儿子一般大,如果我能向它那样出入微软与它们开发人员长时间交流,不仅仅会牛成它这样.....
可是微软的开发人员不会扔太多时间在它这儿的.所以它会整天追着这个,赶它那个..屁颠个不停吧...
而它的另一版被称为好书的 Windows核心编程,更是没有什么深度可言,仅仅是将windows提供的api,以及内核功能再重申了一遍.
这些书对晋及编程知识是有些贡献的,再说一遍我不是在匾低谁,说说想法而已.

原文地址:https://www.cnblogs.com/ioriwellings/p/15493707.html