java - 如何在android中获取实际时间和日期?
问题描述
我正在开发一个 android 应用程序,我在其中向用户显示时间和日期以进行预订。目前我正在使用系统时间和日期,但问题是用户可以随时更改它。那么如何获得正确的时间和日期呢?我正在解决这个问题超过 3 天,但我还没有找到任何解决方案。任何帮助表示赞赏。
解决方案
这对我来说很好,但它在几秒钟内不准确,这对我来说不是一个大问题。使用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());
}
});
推荐阅读
- c# - 如何在 HierarchicalDataTemplate 内的绑定中清除 TextBox 文本属性
- bit-manipulation - 仅用 &、|、^、~ 实现 << 和 >>?
- node.js - Socket.io 未连接 (2)
- jquery - 当页面在jquery上滚动到顶部时如何制作动画?
- cuda - 是否可以在 GPU 上有效地计算具有任意插入的元胞自动机?
- flask - 从 celery 任务创建的任务被创建了两次
- c# - 使用 Windows 身份验证在 .NET Core 2.1 中扩展 IPrincipal
- node.js - 从 accessSync 返回 ENOENT 以外的值
- html-email - Outlook中的mso-line-height剪切图像
- javascript - 当我们有多个过滤器时,对数据进行“OR”操作的 angularjs 过滤器