在线获取时间

时间:2019-05-01 15:41:30

标签: android time real-time

有什么方法可以让我的Android应用程序从网上获得时间。我想创建一个Android应用程序,在这里我需要使用不受更改设备时间影响的时间。所以我想从在线或firebase数据库中获取当前时间。

2 个答案:

答案 0 :(得分:0)

如果您不关心毫秒精度,并且如果您已经在使用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");
  }
});

答案 1 :(得分:0)

如果您要在使用Firebase创建帐户时想要创建时间,请尝试以下操作:

FirebaseAuth mAuth = FirebaseAuth.getInstance();
FirebaseUserMetadata metadata = mAuth.getCurrentUser().getMetadata();

if(metadata != null) {
  System.out.println("CREATED TIME ======>" + metadata.getCreationTimestamp());
}