Can't get string to datetime conversion to work
20 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Nathan Heller
el 11 de Jun. de 2021
Comentada: Nathan Heller
el 12 de Jun. de 2021
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 comentarios
Walter Roberson
el 11 de Jun. de 2021
could you attach data{1} as a mat file so we can check for odd characters?
Respuesta aceptada
Walter Roberson
el 11 de Jun. de 2021
The very first entry in your data{1} has a leading U+FEFF character, which is a unicode Byte Order Mark character, but is to be interpreted as a Zero-Width Non-Breaking Space if it occurs anywhere other than the first position
3 comentarios
Walter Roberson
el 12 de Jun. de 2021
It probably only occurs once, but to be sure, use another strrep to replace char(65279) with empty
Más respuestas (1)
J. Alex Lee
el 11 de Jun. de 2021
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 ?
Ver también
Categorías
Más información sobre Logical en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!