为Android应用程序获取服务器时间?

时间:2016-03-20 12:16:48

标签: android mysql datetime ntp

我的应用包含时间有限的列表视图。在另一个活动中,我有一个PostActivity让用户使用volley将内容发布到mysql服务器。用户帖子有时间限制。发布内容后,他们可以在一小时或几分钟后再次发布。正如我之前提到的,我的列表视图是有时间限制的,它们包含timeCreated& timeExpiry。每当用户登录并尝试发布某些内容时,我都会获得timeExpiry的值并检查是否 timeExpiry - currentTime (timeExpiry,currentTime& timeCreated)全部在 milliseconds

Long currentTime = System.currentTimeMillis()

Long remainingTime = userDate.getTimeExpiry - currentTime;

if (remainingTime > 0 || remainingTime == 0) { 
//User is allowed to post
}

!等待用户可以更改自己的移动时间并无限制地发布!!

现在为了简单起见,无论如何都要从mysql serverNTP-Server获取时间。我尝试了很多类,例如SntpClient类**(下面的链接)**`

  

但我得到1970-1-1之前的日期

this SO thread

我使用了这个函数,但方法DateUtils.getFormattedDateTime()没有在任何DateUtils类中实现。

public String getUTCTime(){
    long nowAsPerDeviceTimeZone = 0;
    SntpClient sntpClient = new SntpClient();

    if (sntpClient.requestTime("0.de.pool.ntp.org", 30000)) {
        nowAsPerDeviceTimeZone = sntpClient.getNtpTime();
        Calendar cal = Calendar.getInstance();
        TimeZone timeZoneInDevice = cal.getTimeZone();
        int differentialOfTimeZones = timeZoneInDevice.getOffset(System.currentTimeMillis());
        nowAsPerDeviceTimeZone -= differentialOfTimeZones;
    }
    return DateUtils.getFormattedDateTime(new Date(nowAsPerDeviceTimeZone));
}
  

“0.de.pool.ntp.org”德国的NTP服务器时间

0 个答案:

没有答案