首页 > 解决方案 > 如何在android中获取实际时间和日期?

问题描述

我正在开发一个 android 应用程序,我在其中向用户显示时间和日期以进行预订。目前我正在使用系统时间和日期,但问题是用户可以随时更改它。那么如何获得正确的时间和日期呢?我正在解决这个问题超过 3 天,但我还没有找到任何解决方案。任何帮助表示赞赏。

标签: javaandroid

解决方案


这对我来说很好,但它在几秒钟内不准确,这对我来说不是一个大问题。使用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());
        }
    });

推荐阅读