I end up using this one.
Create another class and then add the code inside. And then calling the class from my main activity to obtain the date.
The code is a bit old and I modified it by adding AsyncTask... works fine for me...
And one more thing, the usage of the class (from what the code sugguest) gives String.valueof(now) returns 0. Date should be used as below:
SntpClient client = new SntpClient();
if (client.requestTime("time.foo.com")) {
long now = client.getNtpTime() + SystemClock.elapsedRealtime() -
client.getNtpTimeReference();
Date current = new Date(now);
Log.i("NTP tag", current.toString());
}
Updated: 2019-11-06
Use the latest SntpClient library from here
https://github.com/aslamanver/sntp-client-android
Retrieve the time of a specific time zone.
SNTPClient.getDate(TimeZone.getTimeZone("Asia/Colombo"), new SNTPClient.Listener() {
@Override
public void onTimeReceived(String rawDate) {
// rawDate -> 2019-11-05T17:51:01+0530
Log.e(SNTPClient.TAG, rawDate);
}
@Override
public void onError(Exception ex) {
Log.e(SNTPClient.TAG, ex.getMessage());
}
});