我有一台GPS设备可以向我的服务器发送包括GPS时间在内的一些物体 它以周数的形式出现,以秒为单位。
我想将其转换为日期时间格式。我找到了一些代码,但我发现的是如何将周数转换为日期,不包括第二周到周。
我找到this web page,这样做但我无法在c#windows app code中找到如何做到这一点。
示例数据:
GPS Week number 1643
GPS second into week 377505
那应该是2011/07/07 10:51:44
。
答案 0 :(得分:7)
如果你知道代表星期的DateTime,只需调用AddSeconds来找到你需要的DateTime。
根据您上面链接的计算器,第1643周,377505应该等于2011/07/07 07:51:44,而不是10:51:44(可能是时区偏移?)无论如何,以下当选择GMT时,代码段将为您提供与链接中的计算器相同的结果 - 对于不同的时区,您将必须应用自己的偏移量。
DateTime GetFromGps(int weeknumber, double seconds)
{
DateTime datum = new DateTime(1980,1,6,0,0,0);
DateTime week = datum.AddDays(weeknumber * 7);
DateTime time = week.AddSeconds(seconds);
return time;
}
答案 1 :(得分:1)
这适用于VB6
Dim dtt As Date
dtt = "6 / 1 / 1980"
dtt = DateAdd("d", (1837 * 7), dtt)
dtt = DateAdd("s", 129414, dtt)
1837年是gps周
129414是星期几