String convertion to date

조회 수: 5 (최근 30일)
Jorge Luis Paredes Estacio
Jorge Luis Paredes Estacio 2023년 2월 7일
Hello. I have the following strings
a= '16deNoviembredel2017'
b= '20:56:14'
I would like to convert the string into a specific date time format as indicated below
dt_event= datetime([a,b],'InputFormat','ddMMMMyyyyHH:mm:ss', 'Format','yyyy_MM_dd HH_mm_ss');
Could you please help me to correct the inputFormat to make it readable. Thank you.
Jorge
  댓글 수: 4
Jan
Jan 2023년 2월 7일
Then my question is: Can you ask the authors of these files to use a less obscure date format? Text files are wanted to be processable by code, so why deciding for a format which is hard to parse?
But I know: In many cases it is impossible to modifiy the inputs and the programmers have to live with strange data.
Jorge Luis Paredes Estacio
Jorge Luis Paredes Estacio 2023년 2월 7일
Unfortunately, you can find that information like that from acceleration records and need to modify the scripts to verify the date before processing them.

댓글을 달려면 로그인하십시오.

채택된 답변

Jan
Jan 2023년 2월 7일
a = '16deNoviembredel2017';
b = '20:56:14';
dt_event = datetime([a,b], 'Locale', 'es_ES', ...
'InputFormat', 'dd''de''MMMM''del''yyyyHH:mm:ss', ...
'Format','yyyy_MM_dd HH_mm_ss')
dt_event = datetime
2017_11_16 20_56_14
This works for this specific input, but are the keys "de" and "del" really fixed? I do not speak Spanish.
  댓글 수: 1
Jorge Luis Paredes Estacio
Jorge Luis Paredes Estacio 2023년 2월 7일
Thank you very much. It works perfectly.
Best
Jorge

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Benjamin Kraus
Benjamin Kraus 2023년 2월 7일
편집: Benjamin Kraus 2023년 2월 7일
Note, I don't speak Spanish, so I'm not sure of the proper user of "de" and "del", so this answer may need to be adjusted.
I suspect you are going to need to manually remove "de" and "del" before you can use datetime. For example:
a = '16deNoviembredel2017';
b = '20:56:14';
a_ = regexprep(a,'(\d{2})de(\w+)del(\d{4})','$1$2$3')
a_ = '16Noviembre2017'
dt_event= datetime([a_,b],'InputFormat','ddMMMMyyyyHH:mm:ss', ...
'Format','yyyy_MM_dd HH_mm_ss','Locale','es_ES')
dt_event = datetime
2017_11_16 20_56_14
  댓글 수: 1
Jorge Luis Paredes Estacio
Jorge Luis Paredes Estacio 2023년 2월 7일
Thank you very much. It works perfectly.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Dates and Time에 대해 자세히 알아보기

제품


릴리스

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by