Can't get string to datetime conversion to work

7 ビュー (過去 30 日間)
Nathan Heller
Nathan Heller 2021 年 6 月 11 日
コメント済み: Nathan Heller 2021 年 6 月 12 日
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 件のコメント
Nathan Heller
Nathan Heller 2021 年 6 月 11 日
here you go

サインインしてコメントする。

採用された回答

Walter Roberson
Walter Roberson 2021 年 6 月 11 日
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 件のコメント
Nathan Heller
Nathan Heller 2021 年 6 月 12 日
Thanks for all your help!

サインインしてコメントする。

その他の回答 (1 件)

J. Alex Lee
J. Alex Lee 2021 年 6 月 11 日
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 件のコメント
Nathan Heller
Nathan Heller 2021 年 6 月 11 日
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?

サインインしてコメントする。

製品


リリース

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by