why textscan can't parse the time like this
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
tunit='days since 2024-10-31 18:00:00';
rn=textscan(tunit,'%s since %{yyyy-MM-dd HH:mm:ss}D',1);
0 Kommentare
Akzeptierte Antwort
Stephen23
am 8 Apr. 2025
Bearbeitet: Stephen23
am 8 Apr. 2025
"why textscan can't parse the time like this"
Because you have a delimiter right in the middle of your datestamp. Clearly that will not work: TEXTSCAN always splits at delimiters (because that is the meaning of a delimiter). Also note that you explicitly wrote delimiters in the format string, but with TEXTSCAN you specify the delimiter (or use the default) and then do NOT write it in the format string.
You can parse the date & time as DATETIME & DURATION objects and then add them together:
tunit = 'days since 2024-10-31 18:00:00';
rn = textscan(tunit,'%ssince%{y-M-d}D%{hh:mm:ss}T')
dt = rn{2}+rn{3};
dt.Format = 'yyyy-MM-dd HH:mm:ss'
Or using the automagic DATETIME & DURATION format detection:
rn = textscan(tunit,'%ssince%D%T');
dt = rn{2}+rn{3};
dt.Format = 'yyyy-MM-dd HH:mm:ss'
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Text Files finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!