[SOLVED] "Send tweet with timestamp" sketch hangs, shows no activity

    boolean gotTime = getTime();    // returns TRUE if timestamp was created successfully

    if (gotTime) {                   // == 1, then the timestamp was created successfully
      strcat(tweet, timestamp);
      strcat(tweet, " as of ");
      
    }                                // ELSE returned 0, send tweet w/o timestamp

      strcat(tweet, "!");

Suppose that getTime() populate timestamp, and did return true. It obviously does return true because the tweet contains "as of" in your output. So, apparently, getTime() is not populating timestamp. But, even if you correct that, why would you want to tweet something like

We're open 12:45:00 as of !

?

The order of strcat() calls is wrong.

In getTime(), populating timestamp happens only if Udp.parsePacket() returns true. You have no serial output in the if block, but the fact that the timestamp after the end of the block is empty is proof that Udp.parsePacket() returned false.

So, you need to determine if you can, from where you are in the network, actually reach that time server.