我在iOS和Android中有一个项目,我在其中使用firebase作为我的远程服务器。我还必须将当前日期保存在Android和iOS的Firebase中。这样我以后才能获取它,并找到一些日期之间的差异。在iOS中,我将时间自1970年以来以毫秒为单位进行保存。在android中,我只是将其作为system.getTimeInMillis();
但是后来我发现两者都没有返回相同的值。我想使它适用于android和iOS。我已经尝试过堆栈溢出和其他论坛的一些方法。但是我找不到答案。有时,iOS将值保存为double值,而android将其保存为很长时间。 我尝试过
Calendar mycalendar = Calendar.getInstance();
mycalendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
mycalendar.set(Calendar.MINUTE, minute);
mycalendar.set(Calendar.SECOND, 0);
long times = mycalendar.getTimeInMillis();
仍然没有在iOS中同时返回相同的值。因此,任何人都可以说出如何以毫秒为单位获取Android和iOS的时间吗?
答案 0 :(得分:1)
为什么您希望两个不同的设备能够在不进行大量工作的情况下同步到毫秒?这基本上是不可能的。时间不是一个神奇地转换到手机中的通用常数-设备内部的时钟和硬件始终会微妙地关闭,即使同步到网络,并且网络在同步这两个设备时也会出现网络延迟
我强烈建议您阅读https://infiniteundo.com/post/25326999628/falsehoods-programmers-believe-about-time和https://infiniteundo.com/post/25509354022/more-falsehoods-programmers-believe-about-time,您不能以自己的方式考虑时间。
答案 1 :(得分:0)
尝试使用基于NTP的TrueTime库。 对于相同的用例,我们所有人都能够在两个平台上实现准确的时间。两种平台上的NTP服务器保持相同。