【发布时间】:2015-07-20 18:40:57
【问题描述】:
我面临以下问题,我有一个带有 angular 和 java 的播放应用程序。在一个页面中,客户端在日历中选择某个日期和时间,例如 2015-04-03 15:00 此数据作为日期放入 JavaScript 对象中,稍后将此数据提交到我的服务器但似乎服务器正在将此日期/时间转换为他的时区保存 2015-04-03 16:00 而不是 15:00 作为客户端发送的。 p>
在我将数据提交到服务器后,当我重新加载页面时,它会保存在数据库中,显示日期少了 1 小时
向服务器发送数据。请注意,有一个 console.info() 打印日期时间。它正在打印正确的日期/时间。用户选择的日期/时间。
$scope.confirmCallback = function () {
$scope.schedule.client = $scope.client;
$scope.schedule.type = 'CONTACT';
console.info($scope.schedule.date); //PRINTS OK DATE/TIME
ScheduleRepository.create($scope.schedule).then(function () {
Alert.success('views.schedule.message.successSaved');
$scope.schedule = {};
$scope.tableSchedules.reload();
}, function () {
});
}
这是在我的服务器端接收请求的控制器上。如果我检查 json,请求到达服务器的那一刻,我可以看到日期时间值与我发送的不同。我想这与客户端和服务器端的时区有关。
@Dynamic("CREATE_SCHEDULE, EDIT_SCHEDULE")
public static Result save() {
try {
JsonNode request = request().body().asJson();//SHOWS DIFFERENT DATE/TIME
ScheduleClient scheduleClient = JSONUtils.fromJson(request, ScheduleClient.class);
有什么建议可以解决这个问题吗?提前致谢
【问题讨论】:
-
不清楚发送到服务器的内容是日期还是字符串表示。这会有所作为。还有什么是发球改变它的证据。
-
问题不清楚。请提供一些代码。
-
@Ignaus 是发送到服务器的日期。具有上述值的 java 脚本对象日期。当服务以某种方式获取日期时,正在更改发送日期。我还添加了有关该问题的更多信息。
-
@redge 我添加了有关该问题的更多信息。我希望它更清楚
-
这就是为什么我要你的一些代码。问题可能是服务器将 POST 请求中的时间转换为 java 时间对象,甚至在客户端之前。
标签: java javascript angularjs playframework timezone