How to find out the Real Geographical Time, as in my application I want to attach the real time with my application.
So that if the user changes the time in his device then I should get only the real prevailing time - NOT THE DEVICE TIME
My question is much confusing but try to understand in a simple language -
I dont want DEVICE TIME, I want REAL PREVAILING TIME at any instant
In order to get just the time, you just need to replace (a) yyyy-MM-dd'T'HH:mm:ss.
Saving DateTime in Android String – you can simply save your datetime as String (Text in SQLite) if all you want to do with the date going forward is display it. Also you can use DateFormat to parse the saved String to date value and work with it later. Product temp = new Product(); temp.
You need to use the NTP (Network Time Protocol) protocol:
Here is some code I found somewhere else... and I am using it. This uses the Apache Commons library, which can be installed using Gradle (adding a dependency on commons-net:commons-net:3.6
)
If you need a list of time servers, check: http://tf.nist.gov/service/time-servers.html
Here is some Java Code for you to use:
public class TimeLookup { public static final String TIME_SERVER = "time-a.nist.gov"; public static void main(String[] args) throws Exception { NTPUDPClient timeClient = new NTPUDPClient(); InetAddress inetAddress = InetAddress.getByName(TIME_SERVER); TimeInfo timeInfo = timeClient.getTime(inetAddress); long returnTime = timeInfo.getReturnTime(); Date time = new Date(returnTime); System.out.println("Time from " + TIME_SERVER + ": " + time); } }
Note the Android code must run on the background thread and include gradle dependency:
implementation 'commons-net:commons-net:3.6'
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With