Я работаю над приложением для Android, в котором я показываю пользователям время и дату для бронирования. В настоящее время я использую системные время и дату, но проблема в том, что пользователь может изменить их в любое время. Итак, как получить правильное время и дату? Я работаю над этой проблемой более 3 дней, но не нашел решения. Любая помощь приветствуется.
Взгляните на это: stackoverflow.com/questions/13064750/…. Это то, что вам нужно?
несколько лет назад я использовал эту библиотеку для этого github.com/dlew/joda-time-android
Планируете ли вы хранить свои бронирования на каком-то сервере? Если да, то можете ли вы получить текущее время с сервера?




Возможно, это сработает:
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
int mYear = calendar.get(Calendar.YEAR);
int mMonth = calendar.get(Calendar.MONTH);
int mDay = calendar.get(Calendar.DAY_OF_MONTH);
int mHour = calendar.get(Calendar.HOUR);
int mMinute = calendar.get(Calendar.MINUTE);
int mSecond = calendar.get(Calendar.SECOND);
System.out.print(mDay + "." + mMonth + "." + mYear + " " + mHour + ":" + mMinute + ":" + mSecond +"\n")
спасибо, но это то, что я назвал системным временем. Мне это не нужно, я нашел ответ.
У меня это сработало, но неточно в считанные секунды, для меня это не большая проблема. Используется база данных firebase в реальном времени.
final DatabaseReference offsetRef =
FirebaseDatabase.getInstance().getReference(".info/serverTimeOffset");
offsetRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
long offset = snapshot.getValue(Long.class);
long estimatedServerTimeMs = System.currentTimeMillis() + offset;
SimpleDateFormat sdf = new SimpleDateFormat("MMM dd,yyyy HH:mm");
Date resultdate = new Date(estimatedServerTimeMs);
Log.d(Tag,"date from firebase is "+sdf.format(resultdate).toString());
}
@Override
public void onCancelled(DatabaseError error) {
System.err.println("Listener was cancelled");
Log.d(Tag,"error is "+error.toString());
}
});
может это поможет? github.com/instacart/truetime-android