Отдельная текущая дата от времени на Android - PullRequest
0 голосов
/ 17 марта 2020

Я получаю текущую дату от Google, и она дает мне ответ, подобный этому:

date = **"Tue, 17 Mar 2020 12:37:44 GMT"**

Но мне нужна только дата, поэтому я конвертирую метку времени, но я не смог получить желаемый результат.

У меня есть этот код в методе onCreate ():

Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
                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 date = response.getFirstHeader("Date").getValue();
                        Log.d("Date : ", date);
                        System.out.println("d :" + date);
                       timeStamp = date;
                        getTime();
                    } 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());
                }
            }
        });

        thread.start();

После входа в метод getTime () приложение не показало мне результат . Вот код:

private void getTime() {
        String timeStampST = timeStamp;
        SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = null;
        String resultDate = null;
        try {
            date = fmt.parse(timeStampST);
            SimpleDateFormat fmtOut = new SimpleDateFormat("EEE MMM dd yyyy");
            resultDate = fmtOut.format(date);
            Toast.makeText(this, resultDate, Toast.LENGTH_SHORT).show();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

Примечание : я хочу получить такую ​​дату

Дата : вт, 17 марта 2020

Вот почему я конвертирую метку времени, но она не работает.

Ответы [ 2 ]

0 голосов
/ 18 марта 2020

Выше, в моем вопросе, подход, который я использую, был неправильным в методе getTime , поэтому ниже описывается, что я сейчас делаю в методе getTime. Во-первых, я получаю значение timeStamp. Вы можете получить его, написав конвертировать метку времени в дату в Google. Откройте первую ссылку и получите значение timeStamp.

В методе getTime () вам просто нужно создать объект Calendar и установить для него данные отметки времени. Вы получите данные метки времени в свой объект календаря и можете превратить их в строку, используя DateFormat.format . Как это:

long timeStampValue = 1584517882L;
Calendar cal = Calendar.getInstance(Locale.ENGLISH);
cal.setTimeInMillis(timeStampValue * 1000L);
String date = DateFormat.format("yyyy-MM-dd", cal).toString();
Log.d("date: ", date);
0 голосов
/ 17 марта 2020
 String arrDate[] = date.split(" ");
 String  newDate = arrDate[0]+" "+ arrDate[1] + " " + arrDate[2] +" "+arrDate[3];

Если вы каждый раз получаете один и тот же формат даты, то вы разделяете строку, используя пробел, и вы получите данные массива. После получения данных массива вы присоединяетесь к индексу массива как ваше требование. Это будет хорошо работать, но это не правильный код для конвертации даты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...