【问题标题】:TrueTime Sometimes not giving valueTrueTime 有时不提供价值
【发布时间】:2020-04-15 19:50:59
【问题描述】:

我在我的应用程序中实现了Truetime。它工作正常,但有时当我打开我的应用程序时,我没有得到价值。我已经设置了每日奖励方法,但如果发生这种情况将是一个大问题。

这是代码,我可以通过它获得时间:

class GoogleTime extends AsyncTask<Void,Void,Void> {
        @SuppressLint("CheckResult")
        @Override
        protected Void doInBackground(Void... voids) {

            try {
                TrueTime.build().initialize();

                TrueTimeRx.build()
                        .initializeRx("time.google.com")
                        .subscribeOn(Schedulers.io())
                        .subscribe(date -> {
                           java.util.Date da = TrueTimeRx.now();
                            Log.w("PPPPP", "TrueTime was initialized and we have a time: " + da);

                            String mm= String.valueOf(da);

                            String name   = mm.substring(0, mm.lastIndexOf("GMT+06:00"));
                            String yyy   = mm.substring(mm.length()-4);

                            String f = name+yyy;
                            String []strArray=f.split(" ");

                            Month = getMonthInIntFormat(strArray[1]);
                            String dd = strArray[2];
                            String yy = strArray[4];


                            String  Datw = dd +""+Month+""+yy;


                            TotalDate =Integer.parseInt(Datw);

                            Log.w("PPPPP", "TrueTime was initialized and we have a time: " + TotalDate);


                        }

                        , Throwable::printStackTrace);


            } catch (IOException e) {
                e.printStackTrace();
            }

            return null;
        }


    }

我已经在 create 上执行了课程。我在.subscribe(date -&gt; { 上也遇到了错误。它的说法 Resultof Single.subscribe() 被忽略了。

【问题讨论】:

    标签: java android time ntp current-time


    【解决方案1】:

    使用 HttpGet、Client 和 Response,我设法从响应 Date Header 中获取服务器的当前时间。我可以在任何时候都调用它,并且会得到自信的响应(Google 几乎 100% 可用,我可以相信得到正确的日期和时间)

    try{
            HttpClient httpclient = new DefaultHttpClient();
            HttpResponse response = httpclient.execute(new HttpGet("https://google.com/"));
            StatusLine statusLine = response.getStatusLine();
            if(statusLine.getStatusCode() == HttpStatus.SC_OK){
                String dateStr = response.getFirstHeader("Date").getValue();
                //Here I do something with the Date String
                System.out.println(dateStr);
    
            } else{
                //Closes the connection.
                response.getEntity().getContent().close();
                throw new IOException(statusLine.getReasonPhrase());
            }
        }catch (ClientProtocolException e) {
            Log.d("Response", e.getMessage());
        }catch (IOException e) {
            Log.d("Response", e.getMessage());
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-16
      • 1970-01-01
      • 1970-01-01
      • 2012-10-23
      • 1970-01-01
      相关资源
      最近更新 更多