I have not altered the code but I am getting 0 seconds since 1900.
That suggests that the format of these NTP packets have changed since this sketch was written.
packet received
Seconds since Jan 1 1900 = 0
Unix time = 2085978496
The UTC time is 6:28:16
15
// The timestamp starts at byte 40 of the received packet and is four bytes, or two words, long.
// First, esxtract the two words:
uint16_t nHighWord = word(arrayBuffer[40], arrayBuffer[41]),
nLowWord = word(arrayBuffer[42], arrayBuffer[43]);
Can anyone tell me what this code should be changed to
Is this page accurate for NTP packets?

It appears to me that the time stamp should start at byte 32 not byte 40?
I altered this example sketch to dump the contents of the buffer and this is what I am getting in serial monitor:
I don't understand what I am getting from the NTP server.
Either way this example sketch is reading the empty part of the buffer to get the seconds since 1900!
packet received
36 2 6 236 0 0 12 208 0 0 0 68 218 100 43 70 219 102 11 222 208 66 148 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Seconds since Jan 1 1900 = 0
Unix time = 2085978496
The UTC time is 6:28:16
16
packet received
13 10 43 73 80 68 44 48 44 52 56 44 49 50 49 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Seconds since Jan 1 1900 = 0
Unix time = 2085978496
The UTC time is 6:28:16
48
packet received
36 2 6 233 0 0 7 99 0 0 10 60 130 194 1 96 219 102 12 51 152 12 187 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Seconds since Jan 1 1900 = 0
Unix time = 2085978496
The UTC time is 6:28:16
17
packet received
13 10 43 73 80 68 44 48 44 52 56 44 49 48 51 46 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Seconds since Jan 1 1900 = 0
Unix time = 2085978496
The UTC time is 6:28:16