在MATLAB中用24小时解析日期

Bru*_*uno 0 matlab datetime

我有一个包含8760个小时数据行的CSV文件,其中很多都有24:00的时间.似乎MATLAB不允许小时数为24(从0到23).我无法找到一种方法来解析时间24:00的行.

MATLAB示例(给出错误):

datetime('7/16/02 24:00','InputFormat','MM/dd/yy HH:mm')
Run Code Online (Sandbox Code Playgroud)

R中的相同示例(工作正常,即自动转换为7月17日,0:00):

as.POSIXct("7/16/02 24:00",format="%m/%d/%Y %H:%M")
Run Code Online (Sandbox Code Playgroud)

Bru*_*uno 5

正如上面的评论中所讨论的,对于MATLAB中不同的日期相关函数,分钟和小时的格式似乎是不同的.可能的解决方案是与... datestr一起使用datetime.

与问题相同的MATLAB示例(现在可以使用):

datetime(datestr('7/16/02 24:00','mm/dd/yy HH:MM'),'InputFormat','MM/dd/yy HH:mm')
Run Code Online (Sandbox Code Playgroud)

结果:

ans = 

   17-Jul-2002 00:00:00

该函数datestr自动将日期转换为7月17日0:00,并将其传递给函数datetime.

  • 有史以来最奇怪的一种matlabisms,接近一个bug(以及来自多个方面的冲突常识).好工作解开了.我认为你应该接受自己的透明答案. (2认同)