MATLAB Answers

I have a CSV file with date and time values I want to import and convert to datetime

28 views (last 30 days)
Tim Moriarty
Tim Moriarty on 5 Apr 2016
Commented: dpb on 5 Apr 2016
The import tool will not convert this to Datetime and I have tried many different options all of which will not allow me to convert the dates in this CSV file to datetime. Example of the format of the dates in the CSV file: {'1/1/2015 1:00:00 AM'} The format of the data is Month/Day/Year Hour:Min:Second AM or PM There are no "0"s infront of any of the month or day values. I have tried MM/DD/YYYY and many different versions of this format
Code that does not work:
DateStrings = importfile(:,'DateTime');
t = datetime(DateStrings,'InputFormat','M/d/y h:MM:SS a');
The clock values are a 12 hour clock as they start at just a date value and then the next value has the hour data and the AM/PM. Any help would be greatly appreciated!

Accepted Answer

dpb
dpb on 5 Apr 2016
Use
t = datetime(DateStrings,'InputFormat','M/d/y h:mm:ss a');
instead. 'MM' --> Months and 'SS' --> fractional seconds fields. See <datetime-properties Format>
  2 Comments
dpb
dpb on 5 Apr 2016
Well, you didn't say that...extract the table column into a cell array or string array as instructed.

Sign in to comment.

More Answers (1)

Kuifeng
Kuifeng on 5 Apr 2016
%After you have the strings of DateStrings, try the following
formatOut = 'dd mmm yyyy HH:MM:SS AM';
t=datestr(datenum(DateStrings,'dd/mm/yyyy HH:MM:SS',1900),formatOut)
  1 Comment
Tim Moriarty
Tim Moriarty on 5 Apr 2016
The following works then I just have to join the two variables and put back to the origianl variable S = importfile{:,3}; DateStrings = S(:,1);
t = datetime(DateStrings,'InputFormat','M/d/y h:mm:ss a'); t1 = datetime(DateStrings,'InputFormat','M/d/y');

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by