filtering problem of dates

2 次查看(过去 30 天)
circa1 = xlsread(fileToRead);
[numOnly, textOnly, rawDataInCellArray] = xlsread(fileToRead);
Dates=textOnly(~cellfun('isempty',textOnly));
matchresult = regexp(Dates, '(?<day>\d+)/(?<month>\d+)/(?<year>\d+)');
nomatch = cellfun(@isempty, matchresult);
dateless = Dates(nomatch);
datelike = Dates(~nomatch);
dateliketime=datetime(datelike);
liatime=dateliketime.Month == 10;
Warning: Successfully read the date/time strings using the format 'MM/dd/uuuu', but their format is ambiguous and could also be
'dd/MM/uuuu'. Specify a format string to avoid ambiguity.
> In guessFormat (line 59)
In datetime (line 589)
I get the above error. The filtering is wrong because the format string is not properly defined. I want dd/MM/uuuu. I cannot filter out the month October successfully.

采纳的回答

Cam Salzberger
Cam Salzberger 2017-11-1
As the warning suggests, try specifying the correct 'InputFormat' when you call datetime.
datelike = {'01/10/2017' ; '02/10/2017'};
dt = datetime(datelike)
Warning: Successfully read the date/time text using the format 'MM/dd/uuuu', but their
format is ambiguous and could also be 'dd/MM/uuuu'. Specify a format character vector
to avoid ambiguity.
> In guessFormat (line 66)
In datetime (line 612)
dt =
2×1 datetime array
10-Jan-2017
10-Feb-2017
versus:
datelike = {'01/10/2017' ; '02/10/2017'};
dt = datetime(datelike, 'InputFormat', 'dd/MM/uuuu')
dt =
2×1 datetime array
01-Oct-2017
02-Oct-2017
-Cam

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Dates and Time 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by