我正在尝试获取我所在国家的实际电流,但是我使用的方法取决于设备上的时间。我将设备上的时间设置为9 AM,而实际上是7 PM,以下方法返回8 AM,这当然是错误的。
simpledate.setTimeZone(TimeZone.getTimeZone("Europe/Slovakia"));
to_time = simpledate.format(new Date());
有什么方法可以获取该国家/地区的实时时间,而不必依赖于系统时间?我认为设备必须连接到Internet。我国也使用DST,因此也必须考虑到这一点。浏览了类似的问题,没有帮助。
答案 0 :(得分:1)
有两种方法可以执行以下操作:是否需要访问以JSON格式或XML提供当前日期和时间的Web服务,或者可以从
这样的网站解析时间另一个从时间服务器获取时间的替代代码段。您需要一个Apache Commons Net libray才能正常工作。
-A 1
您可以在HERE上找到其他时间服务器。只需将grep
替换为一个。
答案 1 :(得分:0)
package com.myapp.utils;
import android.os.StrictMode;
import java.io.IOException;
import org.apache.commons.net.time.TimeTCPClient;
public class InternetTime {
public static long getFechaHora() {
long time = 0;
try {
TimeTCPClient client = new TimeTCPClient();
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
try {
client.setDefaultTimeout(5000);
client.connect("time.nist.gov");
//System.out.println(client.getDate());
time = client.getTime();
} finally {
client.disconnect();
}
} catch (IOException e) {
e.printStackTrace();
}
return time;
}
}
避免在主线程上出现网络异常