Matlab - Datum und Zeit

From XennisWiki
Jump to: navigation, search

Grundlegendes

% In dem Vektor example sind Daten in dem Format
%     2013-05-25T03:07:23.994
% gespeichert, was dem Datum
%     25.05.2013 3:07:23 und 994 Millisekunden
% entspricht.
dateFormat = 'yyyy-mm-ddTHH:MM:SS.FFF';
example_date = datenum(example, formatWisebed);

% Ausgabe der Daten als String
dateFormat = 'HH:MM:SS.FFF';
example_date_str = datestr(example_date, dateFormat);

Funktionen

Unix Timestamp in Datum umwandeln

function [ date ] = timestamp2date( timestamp_in_s, offset_in_s )
%timestamp2datenum Konvertiert einen (Unix) Zeitstempel in ein Datum
%
%   Beispiel: timestamp2datenum(1369676226.351, 2000)
%
%	timestamp_in_s: (Unix) Timestamp in Sekunden mit ggf. Millisekunden
%                    als Nachkommarstellen
%	offset_in_s: Offset in Sekunden, der auf den Zeitstempel aufaddiert wird

    if nargin < 1
        error('Not enough input arguments.');
    elseif nargin < 2
        offset = 0
    end
    
    timestamp_in_ms = uint64( ((timestamp_in_s+offset_in_s) * 1000));
    date = datenum(double(timestamp_in_ms)/86400/1000 + datenum(1970,1,1));

    %date = datestr(date, 'HH:MM:SS.FFF');
end

String in Datum umwandeln

function [date] = string2date(dateString)
% string2date Converts a date string (specified by 'dateFormat') in a
% real (Matlab) date of the type datenum.
%
%   Example: myDate = string2date(['2013-05-26T08:47:56.409'])
%
%	dateString: date as string
%	return date: date as datenum

    if nargin < 1
        error('Not enough input arguments.');
    elseif isempty(dateString)
        error('Argument is empty.');
    end
    
    % e.g. 12.02.13 01:12
    dateFormat = 'dd.mm.yy HH:MM';
    date = datenum(dateString, dateFormat);

end

Siehe auch