Ich habe eine datetime-Zeichenfolge (die von django / python stammt), die so aussieht:
datatime_str='2020-08-18 16:48:13.722422+00:00'
Ich mache dann in Matlab 2018a:
fmt_dt='yyyy-MM-dd HH:mm:ss.SSSSSS+HH:mm';
datetime(datatime_str,'TimeZone','local','Format',fmt_dt);
Und ich bekomme:
2020-08-18 00:00:13.722422+00:00
Ich bin nicht sicher, was ich falsch mache, aber das Ergebnis ist offensichtlich falsch :(
Jede Hilfe wäre toll
2 Antworten
Ja, das +00:00
sollte als Zeitzone formatiert sein, nicht als Stunden, Minuten. Sie können das Anzeigeformat jedoch beliebig einstellen. Dies kann sich von der Eingabe unterscheiden. Das Standard-Anzeigeformat von Matlab datetime
verwirft die Sekundenbruchteile (und auch die Zeitzone, denke ich). Zum Beispiel:
fmt_dt_input='yyyy-MM-dd HH:mm:ss.SSSSSSxxxxx';
fmt_dt_show='yyyy-MM-dd HH:mm:ss.SSSSSS xxxxx';
datatime_str='2020-08-18 16:48:13.722422+00:00';
t = datetime(datatime_str,'InputFormat',fmt_dt_input,'TimeZone','local','Format',fmt_dt_show)
Hat als Ausgabe: 2020-08-18 16:48:13.722422 +00:00
BEARBEITEN: Diese Informationen zu datetime
finden Sie unter hier
Ihre Eingabezeichenfolge enthält am Ende einen UTC-Offset +00:00
, den Sie als Stunden und Minuten analysieren. Deshalb werden sie im Ergebnis auf 00:00 gesetzt. Verwenden Sie z.B.
datetime('2020-08-18 16:48:13.722422+00:00', 'InputFormat', 'yyyy-MM-dd HH:mm:ss.SSSSSSZ', 'TimeZone', 'UTC')
Stattdessen (ändern Sie den TimeZone-Parameter nach Bedarf).
Verwandte Fragen
Neue Fragen
python
Python ist eine dynamisch typisierte Mehrzweck-Programmiersprache mit mehreren Paradigmen. Es wurde entwickelt, um schnell zu lernen, zu verstehen, zu verwenden und eine saubere und einheitliche Syntax durchzusetzen. Bitte beachten Sie, dass Python 2 ab dem 01.01.2020 offiziell nicht mehr unterstützt wird. Fügen Sie für versionenspezifische Python-Fragen das Tag [python-2.7] oder [python-3.x] hinzu. Wenn Sie eine Python-Variante (z. B. Jython, PyPy) oder eine Bibliothek (z. B. Pandas und NumPy) verwenden, fügen Sie diese bitte in die Tags ein.