ESP8266 + BME280 + NTP time/clock...

I have already small station displaying temperature, humidity, pressure… Plus some constant text.
On OLED display (128x64)…

Now I would like to add code to display time, getting from NTP/Internet server. Using ESP8266 module.
I looked for some ready code - but not so successful…
Maybe someone already something similar and can share…

/////screen
#include <Wire.h>
#include "Adafruit_GFX.h"
#include "Adafruit_SSD1306.h"
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);
#define NUMFLAKES 10
#define XPOS 0
#define YPOS 11
#define DELTAY 21
#define LOGO16_GLCD_HEIGHT 16
#define LOGO16_GLCD_WIDTH  16
/////////////////////////////BME280
#include "BlueDot_BME280.h"
BlueDot_BME280 bme280 = BlueDot_BME280();
//////////////////////////////
void setup() {
  Serial.begin(9600);
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // initialize with the I2C addr 0x3C (for the 128x32)
  display.display();
  Serial.println(F("Basic Weather Station"));
  bme280.parameter.communication = 0;
  bme280.parameter.I2CAddress = 0x76;
  bme280.parameter.sensorMode = 0b11;
  bme280.parameter.IIRfilter = 0b100;                    //Setup for IIR Filter
  bme280.parameter.humidOversampling = 0b101;            //Setup Humidity Oversampling
  bme280.parameter.tempOversampling = 0b101;             //Setup Temperature Ovesampling
  bme280.parameter.pressOversampling = 0b101;            //Setup Pressure Oversampling
  bme280.parameter.pressureSeaLevel = 1013.25;           //default value of 1013.25 hPa
  bme280.parameter.tempOutsideCelsius = 15;              //default value of 15°C
  if (bme280.init() != 0x60)
  {
    while (1);
  }
  else
  {
    Serial.println(F("BME280 detected!"));
  }
  Serial.println();
  Serial.println();
  

}
void loop()
{

  display.clearDisplay();
  display.setTextSize(2);
  display.setTextColor(WHITE);
  display.setCursor(0, 0);
  display.print("T");
  display.setCursor(25, 0);
  display.print(bme280.readTempC());
  display.setCursor(115, 0);
  display.print("C");
  display.drawCircle(110, 2, 2, WHITE); // put degree symbol ( ° )
  display.setTextSize(2);
  display.setCursor(0, 17);
  display.print("H");
  display.setCursor(25, 17);
  display.print(bme280.readHumidity());
  display.setCursor(115, 17);
  display.print("%");
  display.setCursor(0, 36);
  display.print("P");
  display.setCursor(25, 36);
  display.print(bme280.readPressure());
  display.setCursor(110, 43);
  display.setTextSize(1);
  display.print("hPa");
  display.setCursor(25, 56);
  display.setTextSize(1);
  display.print("Alt. ");
  display.print(bme280.readAltitudeMeter());
  display.print(" m");
  display.display();
  delay(3000);
  display.clearDisplay();
  display.setCursor(15, 0);
  display.setTextSize(2);
  display.print(" Adres:");
  display.setCursor(15, 16);
  display.setTextSize(2);
  display.print("SomeCity");
  display.setCursor(15, 36);
  display.setTextSize(2);
  display.print("41-803");
  display.setCursor(5, 55);
  display.setTextSize(1);
  display.print("st. Green 32");
  display.display();
  delay(1000);

  display.clearDisplay();
  display.setCursor(15, 3);
  display.setTextSize(1);
  display.print("GPS Position:");
  display.setCursor(15, 26);
  display.setTextSize(1);
  display.print("N 48  14'"" 0.308\"");
  display.drawCircle(42, 28, 2, WHITE); // put degree symbol ( ° )
  display.setCursor(15, 54);
  display.setTextSize(1);
  display.print("E 21  13'"" 26.108\"");
  display.drawCircle(42, 56, 2, WHITE); // put degree symbol ( ° )
  display.display();
  delay(1000);





}