How do I read this csv file in and convert the dates?

25 次查看(过去 30 天)
How can I use readtable() to read in this .csv and convert the dates from AM/PM to 24 hour at the same tieme
NA-KBOS , Hourly Forecast Made Oct 19 2017 1509 UTC
LocalTime, Temp, TempDiff, TempNormal, DewPoint, Cloud Cover, FeelsLikeTemp, FeelsLikeTempDiff, Precip, WindDir, WindSpeed(mph)
10/19/2017 12:00:00 AM,55.04,-2.1,48.75,46.94,0,55.04,-2.1,0,200,8.1,
10/19/2017 1:00:00 AM,53.96,-2.41,47.2,46.94,0,53.96,-2.41,0,180,8.1,
10/19/2017 2:00:00 AM,53.06,-2.66,46,46.94,0,53.06,-2.66,0,210,9.2,
  4 个评论
Walter Roberson
Walter Roberson 2017-10-20
Unfortunately, %D formats can only handle spaces in the case where the whitespace property has been set to exclude space.
Try
temp = datestr( datenum(B(:,1), 'mm/dd/yyyy HH:MM:SS PM'), 'mm/dd/yyyy HH:MM:SS');
B(:,1) = cellstr(temp);
T4H14
T4H14 2017-10-20
编辑:T4H14 2017-10-20
When I try that I get:
temp = datestr( datenum(B(:,1), 'mm/dd/yyyy HH:MM:SS PM'), 'mm/dd/yyyy HH:MM:SS');
Error using datenum (line 181) DATENUM failed.
Caused by: Error using datenum (line 109) The input to DATENUM was not an array of character vectors.

请先登录,再进行评论。

采纳的回答

Jeremy Hughes
Jeremy Hughes 2017-10-20
编辑:Jeremy Hughes 2017-10-20
Hi, I have two things.
The first is that readtable should recognize the format, and return datetimes (assuming you are in a recent release. I didn't need to pass anything in to get DATETIME out.) If not, then the format should be %{MM/dd/uuuu hh:mm:ss aa}D.
Second, the format you see is only a display format. You can simply change the format of the array to see it in 24 hour time.
This should be as easy as:
T = readtable(filename)
T.LocalTime.Format = 'MM/dd/uuuu HH:mm:ss'
Check out the datetime page for more info on the formats supported. https://www.mathworks.com/help/matlab/ref/datetime.html

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Dates and Time 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by