У меня есть: CreatedTime TIMESTAMP, UpdatedTime TIMESTAMP, Статус Varchar, AutoID колонныПреобразование JSON DATETIME в строку в JAVA
в 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 "";
}
}
Но он возвращает неправильные детали. например, в таблице CreatedTime
- 2016-03-10 14:47:04
, но функция ConvertJsonDateTime
возвращается как 2016-03-11 03:17:04
. Как я могу это исправить?
Вероятно, вы должны установить правильный 'TimeZone' для ваш 'SimpleDateFormat' –
' jsondate! = "" '-> никогда не компрометирует строки в Java, используя' == 'или'! = ': http://stackoverflow.com/questions/513832/how-do-i-compare- strings-in-java И поместите 'jsondate! = null' left-most в ваше выражение: если оно равно null,'! jsondate.equals ("") 'будет бросать NPE –