8266獲取網路時間

2021-09-21 00:23:53 字數 3826 閱讀 2458

8266獲取網路時間

今天第一次用阿里的部落格寫點東西感受一下....

sntp.sync("ntp1.aliyun.com",

function()

print("sync succeeded")

end,

function(index)

print("failed : "..index)

end)

用的sntp

然後列印時間

time = rtctime.epoch2cal(rtctime.get()

timer = string.format("%04d;%02d;%02d;%02d;%02d;%02d;%01d",

time["year"],

time["mon"],

time["day"],

time["hour"]+8,

time["min"],

time["sec"],

time["wday"])

--print(timer)

local datalist = split(timer, ';');

year = tonumber(datalist[1]);

month = tonumber(datalist[2]);

day = tonumber(datalist[3]);

hour = tonumber(datalist[4]);

minute = tonumber(datalist[5]);

second = tonumber(datalist[6]);

weekday = tonumber(datalist[7]);

print(year,month,day,hour,minute,second,weekday)

現在說一下問題

國際時間和北京時間相差8小時,所以會發現所獲得的時間會在北京時間8點的時候變化

年     月   日    時    分   秒  星期

2018 3 3 31 0 0 7

2018 3 3 31 0 1 7

2018 3 3 31 0 2 7

2018 3 3 31 0 3 7

2018 3 3 31 0 4 7

2018 3 3 31 0 5 7

2018 3 3 31 0 6 7

2018 3 3 31 59 54 7

2018 3 3 31 59 55 7

2018 3 3 31 59 56 7

2018 3 3 31 59 57 7

2018 3 3 31 59 58 7

2018 3 3 31 59 59 7

2018 3 4 8 0 0 1

2018 3 4 8 0 1 1

2018 3 4 8 0 2 1

2018 3 4 8 0 3 1

2018 3 4 8 59 51 1

2018 3 4 8 59 52 1

2018 3 4 8 59 53 1

會問怎麼會有31小時,這就是問題點1

國際時間小時是從0-23變化,加了8小時所以變化為8-31

所以獲得時間後直接加8小時是不對的

而且還會發現日子總是在每天的8點變化,肯定不對

最簡單的方法

time = rtctime.epoch2cal(rtctime.get()+28800)

timer = string.format("%04d;%02d;%02d;%02d;%02d;%02d;%01d",

time["year"],

time["mon"],

time["day"],

time["hour"],

time["min"],

time["sec"],

time["wday"])

--print(timer)

local datalist = split(timer, ';');

year = tonumber(datalist[1]);

month = tonumber(datalist[2]);

day = tonumber(datalist[3]);

hour = tonumber(datalist[4]);

minute = tonumber(datalist[5]);

second = tonumber(datalist[6]);

weekday = tonumber(datalist[7]);

print(year,month,day,hour,minute,second,weekday)

time = rtctime.epoch2cal(rtctime.get()+28800)

直接設定系統的時間加8小時,這樣的話系統就能讓日期在零點的時候變化,而且不會向上面似得出現31這種不對的時間

現在的資料

2018    3    5    23    59    50    2

2018 3 5 23 59 51 2

2018 3 5 23 59 52 2

2018 3 5 23 59 53 2

2018 3 5 23 59 54 2

2018 3 5 23 59 55 2

2018 3 5 23 59 56 2

2018 3 5 23 59 57 2

2018 3 5 23 59 58 2

2018 3 5 23 59 59 2

2018 3 6 0 0 0 3

2018 3 6 0 0 1 3

2018 3 6 0 0 2 3

2018 3 6 0 0 3 3

2018 3 6 0 0 4 3

2018 3 6 0 0 5 3

2018 3 6 0 0 6 3

2018 3 6 0 0 7 3

2018 3 6 0 0 8 3

2018 3 6 0 0 9 3

2018 3 6 0 0 10 3

STM32 ESP8266獲取網路時間和天氣

目錄 1 連網 2 獲取天氣和時間 3 對獲取到的資料進行解析 先給出兩個可以獲取天氣和時間的 可以獲取天氣 可以獲取時間 接下來簡單說說怎麼通過at指令的方式去獲取天氣及時間資訊 首先,esp8266肯定是需要連上網才能訪問這些資訊。所以,第一步要做的就是讓esp8266連線上wifi熱點,可以是...

ESP8266獲取網路天氣

使用esp8266模組來獲取網路資料 天氣,時間等 還是挺簡單的。一步一步來。使得mcu可正常使用串列埠的傳送與接收,以及一些io控制esp8266的使能端與電源。傳送 at cwjap?r n 可以獲取當前連線的路由,如果沒有連線正確的路由,則使用 at cwlap r n 命令獲取當前路由列表。...

51微控制器驅動esp8266獲取網路時間

第一次使用esp8266做玩具。使用了stc89c52,ds1302,lcd1602,esp8266.先使用了ds1302實現了本地走時的功能。在通過esp8266獲取網路時間將獲取到的時間寫入ds1302中。再開啟ds1302走時即可。關鍵部分在於esp8266建立連線的部分。現把esp8266初...