I have been doing a bit of searching for what I thought would be an easy task, but can't find any answers. I have played around a little with RTCs and the Ethernet shield, and have had success with both getting the Arduino to get and keep track of the time using the Time library. Is there a way to get the time from a GPRS/GSM network using the GPRS/GSM shield? Typically the cell networks broadcast the time, so I would think this would be trivial. I don't want to add an RTC for such a thing if I don't have to, since that seems overly redundant. As I said, I can't find anything online about how to do it.
there is something called "nitz" in GSM - have a look in the documetation for your shield on how to access this data. However, some caveats:
a) not all carriers supply this, and which bits of information you get can be different (e.g. DST)
b) the resolution is not great ("in the order of minutes"), and IIRC the time is sent onyl once when you log in to a cell, so it could be out of date when you look it up (again, see the codumentation for your shield)
Other options would be to get the time from a simple http header, or send yourself an SMS and parse the datetime from its metadata.