0
for(int i = 0; i < ja.length(); i++){
            JSONObject jo = ja.getJSONObject(i);

            if (jo.getString("from_user").equalsIgnoreCase(namajalur))
            {

                if (jo.getString("text").contains(object))
                {
                    listItems.add("@" + jo.getString("from_user")+ " : \n" +jo.getString("text") + "\r\n" +
                    jo.getString("created_at"));

in ( "created_at")は米国のデフォルトのタイムゾーンで、現地時間とは7時間異なります。

+7時間を追加する方法。デフォルトの時刻11:00:00が18:00:00になる場合。

4

2 に答える 2

2

それを達成するための段階的な方法は次のとおりです。

private SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm");

String createdAt =  jo.getString("created_at"));
Date date = new Date(Date.parse(createdAt));

String localeTime = dateFormat.format(date);

localeTimeは現地時間であり、必要に応じて形式を変更できます。

より短い方法は、単に行うことです

listItems.add("@" + jo.getString("from_user")+ " : \n" +jo.getString("text") + "\r\n" +
                new Date(Date.parse(jo.getString("created_at"))).toLocaleString();

しかし、その方法では、非推奨の方法を使用していますが、実際には最善の方法ではありません。

simpleDate形式を使用すると、正しく解析および形式化されますが、Jsonから提供された日付を使用するか、ロケールに変換する場合は、それでも形式化する必要があります。

于 2012-10-02T16:04:12.950 に答える
1

json (created_at) の文字列値を日付に変換してみてください。以下の関数を使用して文字列に戻してください。

public static Date addSevenHours(Date date) {
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    cal.add(Calendar.HOUR, 7);
    Date end = cal.getTime();
    return end;
}
于 2012-10-02T16:27:54.260 に答える