一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 935|回复: 6
收起左侧

北京时间是GMT+8。可俺咋迷糊了呢。。

[复制链接]
发表于 2011-10-20 22:08 | 显示全部楼层 |阅读模式
刚玩了会儿EtherNut上的NTP,这是22点之前得到的时间 14:56:56。
如果按GMT+8,就应该是22:56:56,整整多了一个小时。。
2011-10-20 22 00 13.png
发表于 2011-10-20 22:42 | 显示全部楼层
夏令时?
 楼主| 发表于 2011-10-20 22:55 | 显示全部楼层
迷糊呢。。。

用的是
域名:time-c.timefreq.bldrdoc.gov
IP: 132.163.4.103
这个延迟比较小

刚得到的时间 15:54:50
 楼主| 发表于 2011-10-20 23:02 | 显示全部楼层
官方的代码:
http://www.ethernut.de/nutwiki/Network_Time_Protocol

  1. int main(void)
  2. {
  3.     unsigned long baud = 115200;

  4.     time_t ntp_time = 0;
  5.     tm *ntp_datetime;
  6.     uint32_t timeserver = 0;

  7.     NutRegisterDevice(&DEV_DEBUG, 0, 0);

  8.     freopen(DEV_DEBUG_NAME, "w", stdout);
  9.     _ioctl(_fileno(stdout), UART_SETSPEED, &baud);

  10.     NutRegisterDevice(&DEV_ETHER, 0, 0);
  11.     if (NutDhcpIfConfig(DEV_ETHER_NAME, 0, 60000)) {
  12.         puts("Error: Cannot configure network.");
  13.     }

  14.     puts("NTP example\n");

  15.     /* Timezone for Germany is GMT-1, so we need to subtract 1 hour = 60*60 seconds */
  16.     _timezone = -1 * 60 * 60;  // 明明是GMT+1,怎么成了GMT-1了。。。俺只好设置成了 0。

  17.     /* Retrieve time from the "pool.ntp.org" server. This is a free NTP server. */
  18.     puts("Retrieving time from pool.ntp.org...");

  19.     timeserver = inet_addr("213.203.238.86");  // 这个地址不知为啥访问不了了。以前测试的时候还可以呢

  20.     for (;;) {
  21.         if (NutSNTPGetTime(&timeserver, &ntp_time) == 0) {
  22.             break;
  23.         } else {
  24.             NutSleep(1000);
  25.             puts("Failed to retrieve time. Retrying...");
  26.         }
  27.     }
  28.     puts("Done.\n");

  29.     ntp_datetime = localtime(&ntp_time);

  30.     printf("NTP time is: %02d:%02d:%02d\n", ntp_datetime->tm_hour, ntp_datetime->tm_min, ntp_datetime->tm_sec);

  31.     for (;;);
  32. }
复制代码
 楼主| 发表于 2011-10-21 00:35 | 显示全部楼层
本帖最后由 huayuliang 于 2011-10-21 00:43 编辑

哦,明白了。。是俺错了。。

  1. struct tm {
  2.         int tm_sec;           /* 秒 – 取值区间为[0,59] */
  3.         int tm_min;           /* 分 - 取值区间为[0,59] */
  4.         int tm_hour;          /* 时 - 取值区间为[0,23] */
  5.         int tm_mday;        /* 一个月中的日期 - 取值区间为[1,31] */
  6.         int tm_mon;          /* 月份(从一月开始,0代表一月) - 取值区间为[0,11] */
  7.         int tm_year;          /* 年份,其值等于实际年份减去1900 */
  8.         int tm_wday;        /* 星期 – 取值区间为[0,6],其中0代表星期天,1代表星期一 */
  9.         int tm_yday;         /* 从每年1月1日开始的天数– 取值区间[0,365],其中0代表1月1日 */
  10.         int tm_isdst;   /* 夏令时标识符,夏令时tm_isdst为正;不实行夏令时tm_isdst为0;*/
  11. };
复制代码
210.72.145.44  (国家授时中心服务器IP地址)
133.100.11.8  日本 福冈大学
time-a.nist.gov 129.6.15.28 NIST, Gaithersburg, Maryland
time-b.nist.gov 129.6.15.29 NIST, Gaithersburg, Maryland
time-a.timefreq.bldrdoc.gov 132.163.4.101 NIST, Boulder, Colorado
time-b.timefreq.bldrdoc.gov 132.163.4.102 NIST, Boulder, Colorado
time-c.timefreq.bldrdoc.gov 132.163.4.103 NIST, Boulder, Colorado
utcnist.colorado.edu 128.138.140.44 University of Colorado, Boulder
time.nist.gov 192.43.244.18 NCAR, Boulder, Colorado
time-nw.nist.gov 131.107.1.10 Microsoft, Redmond, Washington
nist1.symmetricom.com 69.25.96.13 Symmetricom, San Jose, California
nist1-dc.glassey.com 216.200.93.8 Abovenet, Virginia
nist1-ny.glassey.com 208.184.49.9 Abovenet, New York City
nist1-sj.glassey.com 207.126.98.204 Abovenet, San Jose, California
nist1.aol-ca.truetime.com 207.200.81.113 TrueTime, AOL facility, Sunnyvale, California
nist1.aol-va.truetime.com 64.236.96.53 TrueTime, AOL facility, Virginia
发表于 2011-10-21 05:42 | 显示全部楼层
我也写过一个小程序,给lp的本儿同步时间(BIOS的电池坏了,公司的本儿不给换)。
发表于 2011-10-21 09:05 | 显示全部楼层
看来远程的还是不可靠
上熊那找个GPS模块放插口自己整个NTP_SERVER吧

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2025-4-30 02:07 , Processed in 0.071277 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表