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 给您的日期,或者将其转换为 Locale,您仍然应该对其进行格式化。

于 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 回答