2017-05-17 8 views
0

Ich habe ein Eingabedatum mit einer bestimmten Zeitzone in der Zeichenfolge. Zum Beispiel:Datum in lokale Zeitzone transponieren, ohne das Datum zu verschieben

Sat May 20 2017 17:00:00 GMT-0300 (-03)

Ich mag die Zeitzone dieses Datums zu meiner lokalen Zeitzone ändern, ohne die Zeit zu konvertieren. Als ob das Eingabedatum in meiner richtigen Zeitzone wäre.

Sat May 20 2017 17:00:00 GMT+0200 (CEST)

Ich spielte mit Augenblick und fanden diese:

const date = moment(moment.utc('Sat May 20 2017 17:00:00 GMT-0300 (-03)').format('LLL'))

Ist es der einfachste Weg, es zu tun? Ich mag die Kopie des Momentobjekts nicht, aber ich kann keine Methode finden, es in einem "Einzelbild" zu machen.

Antwort

3

Um Ihre Eingabe in Ortszeit zu analysieren, können Sie einfach die moment(String, String) Funktion verwenden. Wie sagt:

Standardmäßig analysiert Moment und zeigt in lokaler Zeit.

Hier ein Live-Beispiel:

var input = 'Sat May 20 2017 17:00:00 GMT-0300 (-03)'; 
 
var m = moment(input, 'ddd MMM DD YYYY HH:mm:ss'); 
 
console.log(m.format());
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>

+1

Dank. Der Schlüssel hier war, das Eingabeformat anzugeben, um das Parsen der Zeitzone zu entfernen. Dachte nie darüber nach. – Kerumen

Verwandte Themen