I want to convert one time format into another type

7 views (last 30 days)
I have date and time data in this form '16-Aug-0022 04:39:55 PM' and I want to convert it in this form '08/16/2022 16:39:00'. Can you provide me with corresponding scripts
thank you in advance
  1 Comment
dpb
dpb on 20 Aug 2022
While @Star Strider provides a way to read these, I'd ask how got the malformed date string in the beginning and suggest fixing that issue.

Sign in to comment.

Answers (2)

Chunru
Chunru on 20 Aug 2022
Edited: Chunru on 20 Aug 2022
str = '16-Aug-0022 04:39:55 PM';
t = datetime(str, 'InputFormat', 'dd-MMM-yyyy hh:mm:ss a'); % convert to datetime type
t.Year = t.Year + 2000; % add 2000 year
t.Format = 'MM/dd/yyyy HH:mm:ss'; % change the output format
t
t = datetime
08/16/2022 16:39:55

Star Strider
Star Strider on 20 Aug 2022
Another approach —
dt1 = '16-Aug-0022 04:39:55 PM';
dt2 = datetime(dt1, 'InputFormat','dd-MMM-00yy hh:mm:ss a', 'Format','MM/dd/yyyy HH:mm:ss')
dt2 = datetime
08/16/2022 16:39:55
Note the specific 'InputFormat' string that accounts for the first two numbers of the year being '00'. No other conversion required!
.

Categories

Find more on Dates and Time in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!