コード例 #1
0
	TimeCPID TraceDataByRank::getData(FileOffset location)
	{

		 Time time = data->getLong(location);
		 int CPID = data->getInt(location + SIZEOF_LONG);
		TimeCPID ToReturn(time, CPID);
		return ToReturn;
	}
コード例 #2
0
ファイル: File_Dpx.cpp プロジェクト: pavel-pimenov/sandbox
string DPX_DateTime2Iso(const string &FromDpx)
{
    if (FromDpx.size()<20
     || FromDpx[ 0]<'0' || FromDpx[ 0]>'9'
     || FromDpx[ 1]<'0' || FromDpx[ 1]>'9'
     || FromDpx[ 2]<'0' || FromDpx[ 2]>'9'
     || FromDpx[ 3]<'0' || FromDpx[ 3]>'9'
     || FromDpx[ 4] != ':'
     || FromDpx[ 5]<'0' || FromDpx[ 5]>'9'
     || FromDpx[ 6]<'0' || FromDpx[ 6]>'9'
     || FromDpx[ 7] != ':'
     || FromDpx[ 8]<'0' || FromDpx[ 8]>'9'
     || FromDpx[ 9]<'0' || FromDpx[ 9]>'9'
     || FromDpx[10] != ':'
     || FromDpx[11]<'0' || FromDpx[11]>'9'
     || FromDpx[12]<'0' || FromDpx[12]>'9'
     || FromDpx[13] != ':'
     || FromDpx[14]<'0' || FromDpx[14]>'9'
     || FromDpx[15]<'0' || FromDpx[15]>'9'
     || FromDpx[16] != ':'
     || FromDpx[17]<'0' || FromDpx[17]>'9'
     || FromDpx[18]<'0' || FromDpx[18]>'9'
     )
        return FromDpx; //Invalid, returning the value in the file

    // Date/Time
    string ToReturn(FromDpx.substr(0, 19));
    ToReturn[ 4]='-';
    ToReturn[ 7]='-';
    ToReturn[10]='T'; // Note: should be 'T' (ISO 8601), TODO: change to 'T' during next API change

    // Time zone
    if (FromDpx.size()>20)
    {
        size_t Offset;
        if (FromDpx[19]==':') // Note: Cineon and DPX v1 header date/time format is with ":LTZ", DPX v2 date/time format is "LTZ", but both are atually seen in any version. Always testing both.
            Offset=20;
        else
            Offset=19;

        size_t Max=FromDpx.find('\0');
        if (Max==(size_t)-1)
            Max=FromDpx.size();

        ToReturn+=FromDpx.substr(Offset, Max-Offset);

        if (ToReturn.size()>22)
            ToReturn.insert(ToReturn.begin(), ':'); //Hours/Minutes offset sepearator added
        else if (ToReturn.size()==22 && (ToReturn[19]=='+' || ToReturn[19]=='-'))
            ToReturn+=":00"; // Minutes offset, default
    }

    return ToReturn;
}