Почему я получаю одинаковые значения разных значений даты JSON? - PullRequest
1 голос
/ 16 апреля 2010

Я не знаю причину, почему я получаю одинаковые значения различных значений даты JSON. Вот мой код для разбора значений даты в формате даты JSON:

package com.jsondate.parsing;

import java.text.SimpleDateFormat;
import java.util.Date;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

public class JSONDateParsing extends Activity {
    /** Called when the activity is first created. */
    String myString;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);


        TextView tv = new TextView(this);
        //Date d = (new Date(1266029455L));
        //Date d = (new Date(1266312467L));
        Date d = (new Date(1266036226L));


        //String s = d.getDate() + "-" + d.getMonth() + "-" + d.getYear() + d.getHours() + d.getMinutes() + d.getSeconds();
       // SimpleDateFormat sdf=new SimpleDateFormat("yyyy MMM dd @ hh:mm aa");
        //Toast.makeText(this, d.toString(), Toast.LENGTH_SHORT);
        Log.e("Value:", d.toString());
        myString = d.toString();
        String []words = myString.split(" ");

        for(int i = 0;i < words.length; i++)
            Log.e("Value:", words[i]);

        myString = words[2] + "-" + words[1] + "-" + words[5] + " " + words[3];

        tv.setText(myString);
        setContentView(tv);


    }
}

Ответы [ 2 ]

2 голосов
/ 17 апреля 2010

Насколько я знаю, не существует стандартного способа представления даты в JSON.Похоже, что то, что вы получаете, является интегральным значением, представляющим число секунд , прошедшее с эпохи 1 января 1970 года, 00:00:00 по Гринвичу.Это несколько отличается от того, что ожидает конструктор Date(long date).Конструктор ожидает миллисекунд с эпохи.Вам нужно умножить значения из JSON на 1000, чтобы правильно использовать их с Date.

long jsonDate = 1266036226L;
Date date = new Date(jsonDate * 1000);
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss");
String stringDate = dateFormat.format(date);

Вот различные представления для приведенных вами примеров.Соответствуют ли они тому, что вы ожидаете?

  • 1266029455 <==> 12 февраля 2010 года 09: 50: 55
  • 1266312467 <==> 16 февраля 2010 года 04: 27: 47
  • 1266036226 <==> 12 февраля 2010 г. 11: 43: 46
  • 1266072180 <==> 13 февраля 2010 г. 09: 43: 46

Обратите внимание, что по умолчанию SimpleDateFormat использует местный часовой пояс.В моем случае это GMT-0500.Другой часовой пояс можно указать, вызвав метод setTimeZone.

0 голосов
/ 28 апреля 2012
var d1 = ui.item.IssueDate;
var d = new Date(parseInt(d1.slice(6, -2)));
var Issdate = ("0" + (d.getMonth() + 1)).slice(-2) + '/' + ("0" + d.getDate()).slice(-2) + '/' + d.getFullYear().toString();
$('#IssueDate').val(Issdate);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...