Używam Jackson (poprzez Spring MVC Adnotacje) do deserializacji pola do java.util.Date
z JSON. POST wygląda tak: - {"enrollDate":"2011-09-28T00:00:00.000Z"}
, ale kiedy Obiekt jest tworzony przez Spring & Jackson, ustawia datę jako "2011-09-27 20:00:00"
.Ustaw zmienną Jackson Timezone dla deserializacji daty
Jak ustawić właściwą strefę czasową w Jackson? A jeśli to nie jest problem, w jaki sposób wysłać EST z komunikatu JSON?
JavaScript/jQuery:
var personDataView = { enrollDate : new Date($("#enrollDate").val()),
//...other members
};
$.postJSON('/some/path/', personDataView, function(data){
//... handle the response here
});
JSON Wiadomość:
{"enrollDate":"2011-09-28T00:00:00.000Z"}
Wiosna Kontroler:
@RequestMapping(value="/", method=RequestMethod.POST)
public @ResponseBody String saveProfile(@RequestBody personDataView persondataView, HttpServletRequest request)
{
//...dataView has a java.util.Date enrollDate field
//...other code
}
W której strefie czasowej jesteś? Jeśli jesteś 4h na zachód od UTC, te 2 znaczki są równoważne. – fvu
Jestem w EST. Dlaczego więc Jackson przyjmuje, że nadchodzący czas, który wysłałem, to GMT? Czy powinienem zmienić javascript, aby inaczej opublikować datę, czy zmienić ustawienie z Jacksonem? –
Z na końcu znacznika czasu jest skrótem +00: 00, inaczej czas Zulu, czyli UTC/GMT. – fvu