Could not recognize the format of the date/time text
6 次查看(过去 30 天)
显示 更早的评论
I have a timetable with a time column containing microsecond resolution. The time column contains something like this:
"07/04/2021 07:55:27.502.118"
"07/04/2021 07:55:27.502.196"
"07/04/2021 07:55:27.502.274"
"07/04/2021 07:55:27.502.352"
"07/04/2021 07:55:27.502.430"
"07/04/2021 07:55:27.502.508"
How can i process the data using datetime function?
0 个评论
采纳的回答
Stephen23
2022-10-4
C = ["07/04/2021 07:55:27.502.118"
"07/04/2021 07:55:27.502.196"
"07/04/2021 07:55:27.502.274"
"07/04/2021 07:55:27.502.352"
"07/04/2021 07:55:27.502.430"
"07/04/2021 07:55:27.502.508"];
D = datetime(regexprep(C,'\.(\d+)$','$1'), 'InputFormat','d/M/y H:m:s.SSSSSS');
Checking:
D.Format = 'MM/dd/yyyy HH:mm:ss.SSSSSS'
更多回答(1 个)
Eric Delgado
2022-10-4
You can't. The precision of datetime is milliseconds, but you can use regexp.
inData = "07/04/2021 07:55:27.502.118";
regData = regexp(inData, '(?<timestamp_ms>\d{2}/\d{2}/\d{4} \d{2}:\d{2}:\d{2}.\d{3}).(?<us>\d*)', 'names')
outData = datetime(regData.timestamp_ms, 'InputFormat', 'dd/MM/yyyy HH:mm:ss.SSSSSS') + seconds(str2double(regData.us)/1e+6)
format long
second(outData)
2 个评论
Eric Sofen
2022-10-4
To be clear, datetime supports more than milliseconds. In fact, datetime guarantees at least nanosecond precision.
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!