MATLAB Answers

How to change the date format of ,txt file?

1 view (last 30 days)
Hi, I am having a hard time on this. I need to read a sequence of .txt files (wind speed and direction forecasts).
I am storing the files names in an array called modfile:
t1 = datetime(2019,7,2);
a=dir(('C:\Users\jmarc\PGE\Dados\Previstos\*.txt'));
numfiles=size(a,1);
mydata = cell(1, numfiles);
for k = 1:numfiles
dia=sprintf( '%02d', day(t1));
mes=sprintf( '%02d', month(t1));
ano=sprintf( '%04d', year(t1));
amd=[ano,'-',mes,'-',dia];
myfiletxt=['C:\Users\jmarc\PGE\Dados\Previstos\','Previsao_Total_',amd,'.txt'];
modfile(k)=string(myfiletxt);
t1=t1+1;
end
for i=1:length(modfile)
modi = readtable(modfile(i));
...
The timestamp of the first column of each file is like this:
2019-07-02 0:30:00
It turns out when matlab reads the timestamp (modi file), day and month are reversed.
Instead of 02-Jul-2019, it gives 07-Feb-2019.
I tried many different formats when reading modfile(i), but I was not successful.
Does anyone can help me?

  6 Comments

Show 3 older comments
JOAO LIMA
JOAO LIMA on 8 Apr 2020
Thanks for your support! Actually I realize that problem starts when I write the txt files from a excel files.
I am using xlsread to load the excel files, extracting sheet #4, and write it in txt format.
I am working on it, but not yet fixed.
dpb
dpb on 8 Apr 2020
xlsread has been deprecated--use one of the suggested alternatives at doc xlsread depending on the format of the data in the sheet..
JOAO LIMA
JOAO LIMA on 8 Apr 2020
dpb, I got it, following your first answer. See below.

Sign in to comment.

Accepted Answer

Jeremy Hughes
Jeremy Hughes on 7 Apr 2020

  2 Comments

JOAO LIMA
JOAO LIMA on 8 Apr 2020
Thank you!! I really worked! Just one thing: for me worked 'DatetimeFormat' instead of 'DateTimeFormat'
opts = detectImportOptions(modfile(i));
opts = opts.setvaropts('data11','InputFormat','dd/MM/yyyy HH:mm:ss','DatetimeFormat','dd-MMM-yyyy HH:ss');
modi = readtable(modfile(i),opts);
Jeremy Hughes
Jeremy Hughes on 8 Apr 2020
BTW, if the format of the files are all the same, you can re-use the opts
opts = detectImportOptions(modfile(1));
opts = opts.setvaropts('data11','InputFormat','dd/MM/yyyy HH:mm:ss','DatetimeFormat','dd-MMM-yyyy HH:ss');
for i = 1:numel(modfile)
modi = readtable(modfile(i),opts);
end

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!