ESP32 WiFi Ntp Client
#include <WiFi.h>
#include <NTPClient.h>
#include <WiFiUdp.h>
From:     https://randomnerdtutorials.com/esp32-ntp-client-date-time-arduino-ide/




/******************************************************
Rui Santos
Complete project details at https://randomnerdtutorials.com
Based on the NTP Client library example
******************************************************/
#include <WiFi.h>
#include <NTPClient.h>
#include <WiFiUdp.h>

//************************* DEFINES ************************************
#define  BAUD  9600
const char *ssid     = "REPLACE_WITH_YOUR_SSID";
const char *password = "REPLACE_WITH_YOUR_PASSWORD";

//************************* PROTOTYPES ************************************

//************************* VARIABLES ************************************
WiFiUDP ntpUDP;                    // Define NTP Client to get time
NTPClient TimClt( ntpUDP );
String formattedDate;
String dayStamp;
String timeStamp;

/*F********************************************************************
*
**********************************************************************/
void 
setup() 
{
	Serial.begin( BAUD );                       // INITIALIZE SERIAL MONITOR
	Serial.print( "Connecting to " );
	Serial.println( ssid );
	WiFi.begin( ssid, password );
	while ( WiFi.status() != WL_CONNECTED ) 
	{
		delay( 500 );
		Serial.print( "." );
	}
	Serial.println( "" );
	Serial.println( "WiFi connected." );
	Serial.println( "IP address: " );
	Serial.println( WiFi.localIP() );              // PRINT LOCAL IP ADDRESS
	TimClt.begin();                // INITIALIZE A NTPClient TO GET TIME
	// Set OFFSET TIME IN SECONDS TO ADJUST FOR YOUR TIMEZONE, FOR EXAMPLE:
	// GMT +1 = 3600
	// GMT +8 = 28800
	// GMT -1 = -3600
	// GMT 0 = 0
	TimClt.setTimeOffset( 3600 );
}
/*F********************************************************************
*
**********************************************************************/
void 
loop() 
{
	while( !TimClt.update() ) 
		TimClt.forceUpdate();
	      // formattedDate COMES WITH FOLLOWING FORMAT: 2018-05-28T16:00:13Z
	formattedDate = TimClt.getFormattedDate();      // EXTRACT DATE AND TIME
	Serial.println( formattedDate );
	int splitT = formattedDate.indexOf( "T" );               // EXTRACT DATE
	dayStamp = formattedDate.substring( 0, splitT );
	Serial.print( "DATE: " );
	Serial.println( dayStamp );
	// EXTRACT TIME
	timeStamp = formattedDate.substring( splitT+1, formattedDate.length()-1 );
	Serial.print( "HOUR: " );
	Serial.println( timeStamp );
	delay( 1000 );
}