前言
环境:Arduino
芯片:ESP32
一、上代码
#include <NTPClient.h>//获取网络时间的库
#include <WiFiUdp.h>
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP ,"ntp.aliyun.com");
void steup(){
timeClient.begin();//初始化
timeClient.setTimeOffset(28800);//设置偏移时间28800秒(8小时)
}
void loop(){
//获取显示的时间
timeClient.update();//更新时间信息
unsigned long epochTime = timeClient.getEpochTime();//获取时间戳
//换算成年月日
struct tm *ptm = gmtime((time_t *)&epochTime);//将时间戳转换为tm的结构体
int currentYear = ptm->tm_year + 1900;//年份
int currentMonth = ptm->tm_mon + 1;//月份
int currentMonthDay = ptm->tm_mday;//日期
int currentWeekDay = ptm->tm_wday;//获取星期几
int currentHour = ptm->tm_hour;//获取时
int currentMin = ptm->tm_min;//获取分
int currentSec = ptm->tm_sec;//获取秒
const char weekdays[8][10]={"0","周一","周二","周三","周四","周五","周六","周末"};
tft.println(weekdays[currentWeekDay]);//显示星期几
tft.println(timeClient.getHours());//显示时
tft.println(":");//显示:
tft.println(timeClient.getMinutes());//显示分
tft.println(timeClient.getFormattedTime());//显示时间,包含了时分秒
}
二、对代码介绍
1.声明
上面代码是我从我的可以运行的程序上面复制下来的,但是没有进行单独验证,所以如果有问题大家可以把报错信息发给我看看