Time synchronisation of a Node

I’m afraid GPS is the only option, but that comes with a price for hardware and battery life.

Class B devices need to synchronize relative time to know when to open a receive window. I don’t think The Things Network will support Class B soon, but maybe Section 9, “Principle of synchronous network initiated downlink” in the LoRaWAn specifactions might get you some bright idea?

Will you even be able to keep time once you’ve somehow set it? If not, then getting it from the server also needs you to take into account that you might not be able to synchronize often enough. (Like you cannot send/receive messages every minute.)

For future readers (it seems this is not accurate enough for you): if it’s about timestamping data you’re sending to the server, then it might be easier to just send it as soon as you’ve got new data, and let the server add the timestamp (which it will do anyhow).