Я разрабатываю приложение с AngularJS во внешнем интерфейсе и Java (с Spring) во внутреннем интерфейсе.
Я заметил, что отображаемые даты объекта profile
во внешнем интерфейсе не такие, как вбаза данных.
Итак, я отладил момент сохранения даты и обнаружил, что во внешнем интерфейсе (справа при сохранении даты - $scope.selectedProfile.$save
) дата имеет следующее значение:
$scope.selectedProfile.projects[1].start -> Date: 2017-10-31T23:00:00.000Z
$scope.selectedProfile.projects[1].start.getTime() -> 1509490800000
Затем я прихожу к точке останова в бэкэнде в строке возврата:
@RestController
@RequestMapping(value = "/profiles", produces = MediaType.APPLICATION_JSON_VALUE)
public class ProfileController {
@RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
public Profile update(@RequestBody Profile profile) {
return this.repository.save(profile);
}
}
И дата имеет следующее значение:
profile.projects.get(1).start -> (Date) “Tue Oct 31 23:00:00 CET 2017”
profile.projects.get(1).start.getTime() -> 1509487200000
Не возникает ли проблема здесь уже?- потому что функции "getTime ()" не должны возвращать одно и то же число как во внешнем, так и во внутреннем интерфейсе, поскольку они не зависят от часовых поясов?
Проблема заключается в том, что я экспортирую значения в файл Word и отображаюмесяц, в котором написано «октябрь», хотя дата, отображаемая в веб-интерфейсе, - 1 ноября.
У кого-нибудь есть идеи, что я могу сделать?
Вот JSON, который передается:
{
"id": 64,
"projects": [
{
"id": 135,
"project": 339,
"start": null,
"end": null
},
{
"id": 132,
"project": 403,
"start": "2017-10-31T23:00:00.000Z",
"end": null
}
]
}
Данные передаются через этот код:
$http.post('/profiles/profiles', profile)
Отображение выполняется автоматически весной, я думаю.