如何在Matlab中将时间结构转换为yyyy-mm-dd的ISO 8601格式?
我的时间结构如下所示:如何在Matlab中将时间结构转换为yyyy-mm-dd的ISO 8601格式?,matlab,structure,Matlab,Structure,我的时间结构如下所示: time.year=str2num(fileNames(i).name(29:32)); time.month=str2num(fileNames(i).name(33:34)); time.day=str2num(fileNames(i).name(35:36)); time.hour=str2num(fileNames(i).name(37:38)); time.min=str2num(fileNames(i).name(39:40)); time.sec
time.year=str2num(fileNames(i).name(29:32));
time.month=str2num(fileNames(i).name(33:34));
time.day=str2num(fileNames(i).name(35:36));
time.hour=str2num(fileNames(i).name(37:38));
time.min=str2num(fileNames(i).name(39:40));
time.sec=30;
time.UTC=-7;
我需要从yyyy-mm-dd的ISO 8601格式中获得任何建议,如何做到这一点?您可以使用以下功能:
timeVec = [time.year time.month time.day time.hour time.min time.sec];
timeStr = datestr(timeVec,'yyyy-mm-dd');
将为您提供本地日期/时间
timeVec = [time.year time.month time.day time.hour-time.UTC time.min time.sec];
timeStr = datestr(timeVec,'yyyy-mm-dd');
如果您的工作时间延至第二天,则应提供祖鲁日期/时间
要将时间字符串添加到输出中,只需将格式字符串更改为'yyyy-mm-dd HH:mm:SS'
另一个很好的资源是Mathwork的如果您想直接从这些文件名中转到Matlab
datenum
值并缩短解析代码,您可以执行类似于t=datenum([filenames(i).name(29:40)'30'],'yyyymmddHHMMSS')代码>