Ich habe 2 Webapps, 1 davon auf Wolke ist "Master", zu denen ich Daten in der 2. Webapp "Kind" übereinstimmen muss.Müssen Epoch Times in bestimmten Zeitzone lesen und dann in Benutzer Zeitzone
Master (1. Webapp, Wolke) zeigt Datum in IST, Asien/Kolkata, die es von SQL-Maschine sitzt in EST-Zeitzone liest.
Child (2. webapp) liest seine Daten aus Elasticsearch, wo ein Java-Feeder die SQL-Daten aufnimmt und an Elasticsearch weitergibt, so wie es ist, ohne Konvertierung.
Wenn ich versuche, diese Elasticsearch Daten in meinem Webapp (Kind)
in meinem Webapp...
{
"_index": "log_event_2016-05-05",
"_type": "log_event",
"_id": "65708004",
"_score": null,
"_source": {
"task_name": "kn_cvs_test",
"task_start_time": "2016-05-05T19:05:05.000-07:00",
"task_end_time": "2016-05-05T19:05:06.000-07:00",
"started_by": "Schedule \"10Minutes\"",
"log_datetime": 1462475106000,
"dw_insert_dt": "2016-05-05T16:40:54.000-07:00"
},
"sort": [
1462475106000
]
}, {
"_index": "log_event_2016-05-05",
"_type": "log_event",
"_id": "65708005",
"_score": null,
"_source": {
"task_name": "kn_cvs_test",
"task_start_time": "2016-05-05T18:55:08.000-07:00",
"task_end_time": "2016-05-05T18:55:11.000-07:00",
"started_by": "Schedule \"10Minutes\"",
"log_datetime": 1462474511000,
"dw_insert_dt": "2016-05-05T16:40:54.000-07:00"
},
"sort": [
1462474511000
]
}
...
die Termine und die Wolke zu lesen nicht übereinstimmt. Bitte korrigieren Sie mich, wenn ich falsch liege. Da Sql Daten in EST speichert, "America/New_York", sollte Momentjs zuerst die data = 1462475106000
in EST lesen und dann die Benutzerzeitzone anwenden, die IST, "Asia/Kolkata" ist. Ist das richtig?
//Timestamp column in table
//data = 1462475106000
$scope.getMeData = function(data) {
var dFormat = "YYYY-MM-DD hh:mm:ss A";
moment.tz.setDefault("America/New_York");
return moment.tz(data, "Asia/Kolkata").format(dFormat);
}
Hinweis: 1462475106000 ist der erste Eintrag in beide Tabelle
ich ein plunker here bin das Aufstellen. Bitte helfen Sie mir herauszufinden, was könnte schief gehen und wie kann ich Termine in beiden Webapps (Cloud als Referenz nehmen).
aktualisieren
Java Feeder führt eine SQL-Abfrage alle benötigten Spalten zu holen. Hier ist, wie log_datetime
abgerufen wird. Ist das der richtige Weg zu holen?
Also nehme ich an, wenn es Daten holt Daylight Saving Information wird nicht berücksichtigt und ich verpasse diese Informationen auch. Also auf UI-Seite werde ich für isDST() überprüfen und eine +5: 00 Stunden oder +4: 00 Stunden je nachdem tun, wie Datum in SQL in America/New_York
gespeichert ist. Plunker with UI fix
Genauer gesagt, ist es nur eine [* POSIX *] (https://en.wikipedia.org/wiki/POSIX) Epoch Zeit überall zu einer Zeit. Es gibt tatsächlich [ein paar Dutzend andere Epochenbezugsdaten] (https://en.wikipedia.org/wiki/Epoch_ (reference_date) #Notable_epoch_dates_in_computing), die in verschiedenen Computerplattformen verwendet werden. Während die POSIX-Epoche (erster Moment von 1970 UTC) üblich ist, ist sie wahrscheinlich nicht die beliebteste. Dieser Titel könnte für eine Milliarde iOS-Geräte und Macs oder für die Lotus 1-2-3- und Microsoft Excel-Tabellen (Ende 1899/Anfang 1900) in das Apple Cocoa-Framework (erster Moment von 2001 UTC) eingehen. –
Auch "" Datenbanken speichern keine Daten in einem TIMZONE. Sie speichern den absoluten Unix-Zeitwert. "' Ist nicht unbedingt wahr. Es hängt stark davon ab, welche Datenbankplattform, welcher * Datentyp * und welche Werte gespeichert werden. –
Können Sie bitte den Aktualisierungs-Teil der Frage überprüfen und Ihre Vorschläge machen. Ich habe die Art und Weise, wie Java-Feeder Daten von SQL empfängt und es an Elasticsearch übergibt. – abi1964