Can't get string to datetime conversion to work

25 vues (au cours des 30 derniers jours)
Nathan Heller
Nathan Heller le 11 Juin 2021
Commenté : Nathan Heller le 12 Juin 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 commentaires
Walter Roberson
Walter Roberson le 11 Juin 2021
could you attach data{1} as a mat file so we can check for odd characters?
Nathan Heller
Nathan Heller le 11 Juin 2021
here you go

Connectez-vous pour commenter.

Réponse acceptée

Walter Roberson
Walter Roberson le 11 Juin 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 commentaires
Walter Roberson
Walter Roberson le 12 Juin 2021
It probably only occurs once, but to be sure, use another strrep to replace char(65279) with empty
Nathan Heller
Nathan Heller le 12 Juin 2021
Thanks for all your help!

Connectez-vous pour commenter.

Plus de réponses (1)

J. Alex Lee
J. Alex Lee le 11 Juin 2021
str = '2019-05-17T19:36:00';
fmt = 'yyyy-MM-dd HH:mm:ss';
b = strrep(str,'T',' ');
disp(b);
2019-05-17 19:36:00
timestamp = datetime(b,'InputFormat',fmt)
timestamp = datetime
17-May-2019 19:36:00
Works for me ?
  1 commentaire
Nathan Heller
Nathan Heller le 11 Juin 2021
I still get the same error when i use your code with str = data {1}(n), so i assume there must be some problem with the data file?

Connectez-vous pour commenter.

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Produits


Version

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by