我的应用包含时间有限的列表视图。在另一个活动中,我有一个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 server
或NTP-Server
获取时间。我尝试了很多类,例如SntpClient
类**(下面的链接)**`
但我得到1970-1-1之前的日期
我使用了这个函数,但方法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服务器时间