MATLAB: UNIX to seconds from beginning of the day

convertposixunixunix to seconds from beginning of the day

I'm trying to convert UNIX (seconds from January 1, 1970) time to seconds from the beginning of the day.
I'm currently using this code, but I'd like seconds from the beginning of the day; I don't want a date string.
time_reference = datenum('1970', 'yyyy'); matrix(:,col.eTime) = time_reference + matrix(:,col.eTime) / 8.64e7; datestr(matrix(1,col.eTime), 'yyyymmdd HH:MM:SS.FFF')
Thanks, Lauren

Best Answer

One way:
ds = your_datestring_stuff;
dn = datenum(ds); % Turned into datenum format
s = (dn - floor(dn)) * 86400; % Seconds from beginning of the day
s = round(s*1000)/1000; % Get closest number to the .FFF fraction you want