“ truetime-android” api有时返回错误的日期和时间?

时间:2019-04-11 11:21:33

标签: android datetime time current-time

我从https://github.com/instacart/truetime-android获得了1.7版的“ truetime-android” api。

工作正常。但有时它会给出

  1. 错误的日期时间

  1. 空白日期时间?

这些异常情况是特定于设备还是特定于android版本还是其他?

1 个答案:

答案 0 :(得分:2)

首先,使用主机和连接超时初始化真实时间,如下所示:

public static void init(final Context context) {
    (new Thread(new Runnable() {
        public void run() {
            try {
                TrueTime.build().withNtpHost("time.google.com").withLoggingEnabled(false).withSharedPreferencesCache(context).withConnectionTimeout(31428).initialize();
            } catch (IOException var2) {
                var2.printStackTrace();
            }

        }
    })).start();
}

调用此方法获取当前时间:

public static long getCurrentTrueTime() {
    Date trueDate = null;
    if (TrueTime.isInitialized()) {
        trueDate = TrueTime.now();
    }

    return trueDate != null ? trueDate.getTime() : System.currentTimeMillis();
}

类似地,调用此方法获取真实时间:

public static Long getTrueTime() {
    Date trueDate = null;
    if (TrueTime.isInitialized()) {
        trueDate = TrueTime.now();
    }

    return trueDate != null ? trueDate.getTime() : null;
}

API版本:

api 'com.github.instacart.truetime-android:library:3.4'