public long getDateField(String name)
    {
        String val = valueParameters(get(name),null);
        if (val==null)
            return -1;

        if (_dateReceive==null)
       {
               _dateReceive=(SimpleDateFormat[])__dateReceiveCache.get();
               if (_dateReceive==null)
               {
                    _dateReceive=(SimpleDateFormat[]) new SimpleDateFormat[__dateReceiveSource.length];
                    __dateReceiveCache.set(_dateReceive);
               }
       }
       
        for (int i=0;i<_dateReceive.length;i++)
        {
            // clone formatter for thread safety
            if (_dateReceive[i]==null)
                _dateReceive[i]=(SimpleDateFormat)__dateReceiveSource[i].clone();
            
            try{
                Date date=(Date)_dateReceive[i].parseObject(val);
                return date.getTime();
            }
            catch(java.lang.Exception e)
            {
                LogSupport.ignore(log,e);
            }
        }
        if (val.endsWith(" GMT"))
        {
            val=val.substring(0,val.length()-4);
            for (int i=0;i<_dateReceive.length;i++)
            {
                try{
                    Date date=(Date)_dateReceive[i].parseObject(val);
                    return date.getTime();
                }
                catch(java.lang.Exception e)
                {
                    LogSupport.ignore(log,e);
                }
            }
        }

        throw new IllegalArgumentException(val);
    }