code: 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);
      }
docs: Get a header as a date value.
  Returns the value of a date field, or -1 if not found.
  The case of the field name is ignored.
  @param name the case-insensitive field name