我有:
创建时间戳,
更新的时间戳,
状态变量char,
自动标识列
在MySQL中。通过我的服务,我得到了以下json格式。

 {
        "CreatedTime": "\/Date(1457646424000)\/",
        "UpdatedTime": "\/Date(1457647761000)\/",
        "Status": "Open",
        "AutoID": 1
 }

我正在尝试转换createdTime和updatedTime,如下所示:
public String ConvertJsonDateTime(String jsondate)
{
    if (jsondate != "" && !jsondate.equals("") && jsondate != null && jsondate != "null") {
        jsondate = jsondate.replace("/Date(", "").replace(")/", "");
        long time = Long.parseLong(jsondate);
        Date d = new Date(time);
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(d).toString();
    } else {
        return "";
    }
}

但它返回了错误的细节。例如,在表中CreatedTime2016-03-10 14:47:04但函数ConvertJsonDateTime返回为2016-03-11 03:17:04。我怎么能修好这个?

最佳答案

你需要设定正确的时区

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("GMT")); // GMT or any timezone

而且,正如bart所说,你从不使用==!=比较字符串,总是使用equals()

10-06 07:05