Trouble parsing ISO8601 date strings into datetime
조회 수: 5 (최근 30일)
이전 댓글 표시
Hi there I am trying to take some datasets with what I believe are ISO8601 timecodes and convert the timecodes to datetime for plotting and sorting by date and time. I think it is the data after the '+' that is tripping me up, but I haven't been able to find the right solution.
here is an example of one of the data entries, and the line that I am trying to excecute
Example data: "2023-06-09T23:55:00+00:00"
solardates= datetime(solar.Date,'InputFormat','uuuu-MM-dd''T''HH:mm:ss''+','TimeZone','UTC');
And here are the errors I get when running the code.
Error using datetime (line 257)
Unable to convert the text to datetime using the format 'uuuu-MM-dd'T'HH:mm:ss'+'.
Error in HistTest (line 30)
solardates= datetime(solar.Date,'InputFormat','uuuu-MM-dd''T''HH:mm:ss''+','TimeZone','UTC');
댓글 수: 0
답변 (1개)
Steven Lord
2025년 1월 23일
Looking at the description of the Format property on the documentation page for the datetime function I think you want ZZZZZ or perhaps Z in the format. The description of those identifiers in the "Time Zone Offset Formats" table each mention ISO 8601.
solar.Date = "2023-06-09T23:55:00+00:00"
I changed firstPartOfFormat from a char vector to a string array, so there's no need to use two single quotes.
firstPartOfFormat = "uuuu-MM-dd'T'HH:mm:ss"
solardates1 = datetime(solar.Date,'InputFormat', firstPartOfFormat+"Z",'TimeZone','UTC')
solardates2 = datetime(solar.Date,'InputFormat', firstPartOfFormat+"ZZZZZ",'TimeZone','UTC')
참고 항목
카테고리
Help Center 및 File Exchange에서 Dates and Time에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!