Ich benutze CST Zeit in meinem System, von Front-End über Javascript Ich sende heute Datum an Feder-Controller. Im Frühjahr Controller durch Anfrage param Ich bekomme das Datum und die Konvertierung bis zum Datum durch @DateTimeFormat Annotation und ich bekomme das gleiche Datum zurück auf die Ansicht Ich bekomme das genaue Datum, was ich erwarte.In Bezug auf Datum Problem in lokalen und Server
Aber wenn ich durch meine Testumgebung teste, die in Amazon Server eingesetzt wird. Wenn ich das heutige Datum verpasse und versuche, das gleiche Datum für das Frontend zu bekommen, kommt es als anderes Datum. Ich habe den Code geschrieben, den ich benutzt habe.
Javascript:
$http({
method : 'GET',
url : urlpath + '/getDate/',
params: {
date: new Date().toString("MM/dd/yyyy")
}
}).success(function(response) {
console.log("date is"+response)
}
Java-Code:
@RequestMapping(value = "/getdate", method = RequestMethod.GET)
public Date getdate(@RequestParam("date") @DateTimeFormat(pattern ="MM/dd/yyyy") throws Exception {
return date;
}
Das Datum in meinem lokalen Rechner ist 2015.01.05 23.17 Die Konsole Aussage Fr 1. Mai 2015 00:00 : 00 GMT-0500 (Central Daylight Time) nein hh mm und ss seit ich mit der datetimeformat annotation abgeschnitten habe.
In meiner Testumgebung ich den gleichen Code verwende aber die Konsole priting wie die unter Do 30. April 2015 23.00.00 GMT-0500 (Zentral Daylight Time)
jemand Nagel heraus Kann dieses Problem und sagen Sie mir die Ursache für dieses Problem.
Es kann wegen der Zeitzone Unterschied sein. Für Ihren lokalen Computer erhält es die Zeitzone Ihres Systems. Wenn Sie jedoch in einer Testumgebung bereitstellen, wird das Datum dieses Servers abgerufen. Die Zeitzone dieses Servers kann eine Stunde zurück sein. –
Kannst du deinen geposteten Code korrigieren, '@DateTimeFormat (pattern = Date date)' und 'new Date(). ToString (MM/dd/yyyy)' sind - AFAIK - nicht gültige Syntax –
Ich würde vorschlagen, dass du arbeitest mit 'unix timestamps' und wandle diese in formatierte Daten um. – infomaniac