2017-04-13 50 views
1

我想在MATLAB改變日,月和年日期以一串數字的Matlab的變化::日,月串行日期的年數

如:7.367985930307407e + 05

給我13- Apr-2017 14:13:57。

我需要:01-JAN-2017 14時十三分57秒

我得到的序列日期數從Simulink模型,在那裏是一本matlab EMB。代碼塊與:

function t = sysTime 

coder.extrinsic('now'); 
t=0; 

t = now 
end 

任何人都可以幫忙嗎?閱讀MATLAB datenum現在實況,但我還是想不出弄明白:(

回答

1

可以使用datetime對象更改數據

d = 7.367985930307407e+05; 

dt = datetime(datevec(d)); 
dt.Month = 1; 
dt.Day = 1; 
% 01-Jan-2017 14:13:57 

% And if you need the serial date number back: 
result = datenum(dt); 
+0

非常感謝! –

0

的特定部分在你的函數SYSTIME,輸出被設定爲now,它給你由系統返回當前時間試試下面的不是:。

function t = sysTime 

coder.extrinsic('now'); 
t=0; 

t=datenum(2017,1,1) + rem(now,1); 

end 

Matlab的日期數字是double類型的數字,表示從參考日期的天數。因此,前面的數字日小數點給你一個日期,小數點後的小數點給你一天的時間。

使用datenum函數,您可以獲得所需日期的日期編號,並添加系統時間的小數部分以獲得所需內容。從長遠來看,它可能會更好地參數化matlab塊中的參考日期。

+0

非常感謝! –

相關問題