Показать сообщение отдельно
Старый 05.04.2012, 10:08   #1  
Roman777 is offline
Roman777
NavAx
Аватар для Roman777
NavAx Club
 
320 / 64 (3) ++++
Регистрация: 10.02.2005
Адрес: г. Москва
Lightbulb System.DateTime ParseExact
Доброе время суток.
Возможно кому-то пригодится функция преобразования строки в тип utcdatetime.

X++:
static utcdatetime clrDateTimeParseExact(str    _dateStr, str   _format)
{
    System.DateTime                     ret;
    System.Globalization.CultureInfo    cultureInfo;
    int                                 infoItem = infolog.line();
    ;


    try
    {
        //Necessary if executed on the AOS
        new InteropPermission(InteropKind::ClrInterop).assert();
        //This will cause an exception
        cultureInfo = System.Globalization.CultureInfo::get_InvariantCulture();

        CodeAccessPermission::revertAssert();

        return System.DateTime::ParseExact(_dateStr, _format, cultureInfo);

        //Revert CAS back to normal
    }

    catch(Exception::CLRError)
    {
        infolog.clear(infoItem);
        throw error(AifUtil::getClrErrorMessage());
    }
}
Пример использования:
X++:
    UTCDateTime                         dateTime;
    ;
    dateTime = clrDateTimeParseExact("20120308181251", "yyyyMMddHHmmss");

    Info(strfmt("%1", dateTime));
За это сообщение автора поблагодарили: Мартынов Дмитрий (1).