Can't get string to datetime conversion to work
Afficher commentaires plus anciens
There seems to be some sort of inconsistency in the converting to datetime code I missed.
q=datetime('2017-05-17 19:36:00', 'InputFormat','yyyy-MM-dd HH:mm:ss')
this works just fine. However, when I am reading the input string '2017-05-17T19:36:00' from an array, stripping the T, and putting it in exactly the same, it fails to work. example:
%data{1}(n) has the string '2019-05-17T19:36:00'
b = strrep(data{1}(n),'T',' ');
disp(b);
%displaying displays 2017-05-17 19:36:00, just like the earlier statement
timestamp = datetime(b,'InputFormat',format);
When I do this, the error message:
Unable to convert '2017-05-17 19:36:00' to datetime using the format 'yyyy-MM-dd HH:mm:ss'.
is displayed. Am i missing something? are these not exactly the same? Thanks for your help.
2 commentaires
Walter Roberson
le 11 Juin 2021
could you attach data{1} as a mat file so we can check for odd characters?
Nathan Heller
le 11 Juin 2021
Réponse acceptée
Plus de réponses (1)
str = '2019-05-17T19:36:00';
fmt = 'yyyy-MM-dd HH:mm:ss';
b = strrep(str,'T',' ');
disp(b);
timestamp = datetime(b,'InputFormat',fmt)
Works for me ?
4 commentaires
Nathan Heller
le 11 Juin 2021
Jim Benjamin
le 11 Mar 2025
Hi everyone,
I have a similar problem: I like to convert the string
s(1) = "11-Mrz-2025 10:03:47" to datetime using
s1 = datetime(s(1), 'InputFormat', 'dd-MMM-yyyy HH:mm:ss', 'Locale', 'de_DE') and I get the error
Error using datetime (line 257)
Unable to convert '11-Mrz-2025 10:03:47' to datetime using the format 'dd-MMM-yyyy hh:mm:ss' and locale 'de_DE'.
I do not know why this Input Format is not working.
Looks like Mrz is not the "official" short literal month name for March in the de_DE localization
str_en = "11-Mar-2025 10:03:47"
dt = datetime(str_en)
string(dt,'dd-MMM-uuuu HH:mm:ss',"de_DE")
str = ["11-Mai-2025 10:03:47","11-Okt-2025 10:03:47","11-März-2025 10:03:47"]
datetime(str, "InputFormat", "dd-MMM-uuuu HH:mm:ss", "Locale", "de_DE")
Walter Roberson
le 11 Mar 2025
Modifié(e) : Walter Roberson
le 11 Mar 2025
de_DE also uses 'Juni' and 'Juli' instead of 'Jun' and 'Jul'
From a 2017 posting of mine:
Marz = char([77 228 114 122]); %'März' -- but protect in case your system only uses 7 bit characters for .m files
date_strings = regexprep(date_strings, {'Mrz', 'Jun(?=\W)', 'Jul(?=\W)'}, {Marz, 'Juni', 'Juli'}, 'ignorecase');
dates = datetime(date_strings,'InputFormat', 'eee MMM d HH:mm:ss yyyy', 'locale', 'de_DE');
Catégories
En savoir plus sur Data Type Conversion dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!