怎么将本地时间转化为北京时间

如何将本地时间转化为北京时间
就是说如果本地的时区不是北京时间,如何转换为北京时间呢?
谢谢。

------解决方案--------------------
首先得转换成格林尼治时间
然后+8用24取模
------解决方案--------------------
C/C++ code

  SYSTEMTIME sysTime;
  GetSystemTime(&sysTime);
  COleDateTime oleTime(sysTime);
  oleTime += COleDateTimeSpan(0, +8, 0, 0);
  TRACE(_T("\n%s\n"), oleTime.Format(_T("%Y/%m/%d %H:%M:%S")));

------解决方案--------------------
2楼的方法在我们国内使用是没有问题的,但是软件在国外使用就又会有问题了
应该多加一步:读取当前时区,再把时区加上
------解决方案--------------------
首先取得格林尼治时间systemtime
然后+8用24取模 

------解决方案--------------------
探讨
2楼的方法在我们国内使用是没有问题的,但是软件在国外使用就又会有问题了
应该多加一步:读取当前时区,再把时区加上