Если вам не нужна точность в миллисекундах, и если вы уже используете Google Firebase или не против его использования (они предоставляют бесплатный уровень), проверьте это: https://firebase.google.com/docs/database/android/offline-capabilities#clock-skew
По сути, база данных firebase имеет поле, в котором указывается значение смещения между временем устройства и временем сервера firebase. Вы можете использовать это смещение, чтобы получить текущее время.
DatabaseReference offsetRef =
FirebaseDatabase.getInstance().getReference(".info/serverTimeOffset");
offsetRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
double offset = snapshot.getValue(Double.class);
double estimatedServerTimeMs = System.currentTimeMillis() + offset;
}
@Override
public void onCancelled(DatabaseError error) {
System.err.println("Listener was cancelled");
}
});