conversion of date from yyyymmddHHMMSS format to yymmddHHMMSS format.

8 views (last 30 days)
Hi all can anyone please help with the conversion of date from yyyymmddHHMMSS format to yymmddHHMMSS format.
for example I want to change column 1 in the following dataset: (e.g row 1 shoud be 200723000000)
'2020,07,23,00,00,00' -0.800000000000000
'2020,07,23,00,00,10' -0.800000000000000
'2020,07,23,00,00,20' -0.700000000000000
'2020,07,23,00,00,30' -0.700000000000000
'2020,07,23,00,00,40' -0.700000000000000
'2020,07,23,00,00,50' -0.800000000000000
'2020,07,23,00,01,00' -0.700000000000000
'2020,07,23,00,01,10' -0.700000000000000
'2020,07,23,00,01,20' -0.700000000000000
'2020,07,23,00,01,30' -0.600000000000000
'2020,07,23,00,01,40' -0.600000000000000
'2020,07,23,00,01,50' -0.600000000000000
'2020,07,23,00,02,00' -0.500000000000000
'2020,07,23,00,02,10' -0.500000000000000
'2020,07,23,00,02,20' -0.500000000000000
'2020,07,23,00,02,30' -0.600000000000000
'2020,07,23,00,02,40' -0.500000000000000
'2020,07,23,00,02,50' -0.500000000000000
'2020,07,23,00,03,00' -0.500000000000000
'2020,07,23,00,03,10' -0.500000000000000
'2020,07,23,00,03,20' -0.500000000000000

Answers (1)

per isakson
per isakson on 13 May 2021
Edited: per isakson on 13 May 2021
vec = datevec( '2020,07,23,00,00,00', 'yyyy,mm,dd,HH,MM,SS' );
datestr( vec, 'yymmddHHMMSS' )
ans = '200723000000'
or did you mean
datestr( vec, 'yy,mm,dd,HH,MM,SS' )
ans = '20,07,23,00,00,00'
  7 Comments
per isakson
per isakson on 13 May 2021
Edited: per isakson on 13 May 2021
First a couple of comments
  • format your question and comments so that they are easier to read an copy
  • keep test cases small and to the point, e.g. there is no need for a large text file
  • read answers and comments carefully and tell if you don't understand
I added a format string (I'm om R2018b)
%%
t = readtable('20200724T000000.txt');
dates = t.Var1;
durations = t.Var2;
T = table(dates, durations);
fullDateTime = dateshift(T.dates,'start','day') + T.durations;
fullDateTime.Format = 'yyyyMMddHHmmSS';
T.DateTime = datestr(fullDateTime,'yymmddHHMMSS');
%%
datevec(T.DateTime(1:2,:),'yymmddHHMMSS')
ans = 2×6
2020 7 23 0 0 0 2020 7 23 0 0 10
The value of T.DateTime is a character array, e.g.
T.DateTime(1:2,:)
ans = 2×12 char array
'200723000000' '200723000010'
Wasn't there a string like 1.0e+4 above the output
format short
magic(4).*1e-6
ans = 4×4
1.0e+-4 * 0.1600 0.0200 0.0300 0.1300 0.0500 0.1100 0.1000 0.0800 0.0900 0.0700 0.0600 0.1200 0.0400 0.1400 0.1500 0.0100
I fail to reproduce your output
datevec(T.DateTime(1:2,:))
Error using datevec (line 289)
Cannot parse date 200723000000.
Remember Samu
Remember Samu on 13 May 2021
Thank you so much Per, i needed to pass it in this format (datevec(T.DateTime(1:2,:),'yymmddHHMMSS')) and it worked!

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!