Android アプリケーション内で使用するために、独自のタイム サーバー (つまり、192.168.1.X) から日付と時刻を取得したいと考えています。
Webで検索しましたが、2つの解決策があります。
しかし、ライブラリをインポートせずに解決策があるのだろうかと思いましたか?
ありがとう!!
私はこれを使用することになります。
別のクラスを作成し、コードを内部に追加します。そして、メインアクティビティからクラスを呼び出して日付を取得します。
コードは少し古いので、AsyncTask を追加して修正しました...私にとっては問題なく動作します...
もう1つ、クラスの使用法(コードが示唆するものから)は String.valueof(now) を返します。日付は以下のように使用する必要があります:
SntpClient client = new SntpClient();
if (client.requestTime("time.foo.com")) {
long now = client.getNtpTime() + SystemClock.elapsedRealtime() -
client.getNtpTimeReference();
Date current = new Date(now);
Log.i("NTP tag", current.toString());
}
更新: 2019-11-06
ここから最新の SntpClient ライブラリを使用します https://github.com/aslamanver/sntp-client-android
特定のタイム ゾーンの時刻を取得します。
SNTPClient.getDate(TimeZone.getTimeZone("Asia/Colombo"), new SNTPClient.Listener() {
@Override
public void onTimeReceived(String rawDate) {
// rawDate -> 2019-11-05T17:51:01+0530
Log.e(SNTPClient.TAG, rawDate);
}
@Override
public void onError(Exception ex) {
Log.e(SNTPClient.TAG, ex.getMessage());
}
});