利用MATLAB将海洋模型输出时间格式转换为可感知格式



我需要帮助。

我有海洋模型输出时间,如下所示我的第一个索引对应于2015年8月1日03:00至2015年11月30日(总时间为952x1大小,其中它是3小时记录)

给我的结构是

timeCounter = 
    time_origin: 'seconds since 1950-01-01 00:00:00'
        timeSec: [952x1 double]

我将变量设为某个t = timeCounter。这是一个952x1数组。问题是,当我使用datestr(t(1:3))时,我得到以下结果

datestr(t(1:3))
ans =
31-Aug-7181
27-Mar-7211
20-Oct-7240

我如何看待第一个索引,因为它是2015年8月1日03:00对应的索引,下一个索引是+3小时,以此类推,直到11月30日,总共(952*3/24 = 119天)。

您可以使用datetime对象并向其添加秒数。

datetime([1950 1 1 00 00 00])
ans = 
   01-Jan-1950 00:00:00

通过直接在matlab中添加秒数(通过您已经创建的时间变量),您可以获得正常格式的时间。

>> datetime([1950 1 1 00 00 00])+seconds(5e8)
ans = 
   05-Nov-1965 00:53:20

在你的例子中,seconds(5e8)将被seconds(t(1))等所取代。

如果你想要花哨的格式,你可以使用datetime格式选项和格式来改变输出的样子。

>> datetime([1950 1 1 00 00 00],'Format','MMM-dd-yyyy HH:mm')+seconds(5e8)
ans = 
   Nov-05-1965 00:53

日期时间格式的完整列表可以在这里找到

最新更新