请教大虾们:我需要用c#写一段程序来得到一下正确的时间,具体是这样的,设备上来的时间是UTC时间,但我要加一个所在时区,得到当前的时区给用户看。我想了一下不知道如何入手,直接加时区肯定是不行的,比如utc时间是2009年11月2号8点35分20秒,如果用户在中国的话就应该是2009年11月2号16点35分20秒。该如何做?如果直接加的话到24后肯定是要跨天了,等到了月末又有跨月的问题到年末又要跨年的问题。是不是有比较简单的方法实现这个?谢谢大家

解决方案 »

  1.   

    详见 TimeZone.GetUtcOffset 方法
    返回指定本地时间的协调通用时间 (UTC) 偏移量。
      

  2.   

    不好意思,直接用addhours是可以,不过我不知道如何把datatime转化成 
    sTemp = ss[iStart + 8];
    string sTemp88 = "";
    DateTime dt88 = DateTime.Now;
    sTemp88 = "20" + sTemp.Substring(4, 2) + "-" + sTemp.Substring(2, 2) + "-" + sTemp.Substring(0, 2) + " " + sTime;
    dt88=DateTime.Parse(sTemp88);
    dt88 = dt88.AddHours(5);
    sTemp88 = DateTime.ToString(dt88);
    pos.GpsTime = sTemp88;
    但我不知道sTemp88 = DateTime.ToString(dt88);这个老是说无法转换,具体参数该如何写?
      

  3.   


    你这么算问题很多 根据local timezone(比如北京香港时区),timezone 和 utc 之间的差异进行转换
      

  4.   

    现在加是加成功了,如果超过24会自动跳到下一天。这个不考滤,但我现在是想把它在转成字符型DateTime.ToString,老是提示出错
      

  5.   

    具体是要转成YYYY-MM-DD HHMMSS格式