public static long getFlowTime(AppResult result) {
    String schedulerName = result.scheduler;
    SchedulerConfigurationData schedulerData = InfoExtractor.getSchedulerData(schedulerName);

    String flowTimeField = null;
    String flowTimeType = null;
    if (schedulerData != null) {
      flowTimeField = schedulerData.getParamMap().get("flowtimefield");
      flowTimeType = schedulerData.getParamMap().get("flowtimetype");
    }

    if (flowTimeField != null && flowTimeType != null && flowTimeField.equals("flowExecId")) {
      SimpleDateFormat DATE_FORMAT = new SimpleDateFormat(flowTimeType);
      long flowTime;
      try {
        flowTime = DATE_FORMAT.parse(result.flowExecId).getTime();
      } catch (ParseException e) {
        logger.warn("Could not parse " + result.flowExecId +" for application " + result.id);
        flowTime = result.finishTime;
      }
      return flowTime;
    } else {
      return result.finishTime;
    }

  }
Get the flowtime corresponding to the job.
The flowtime will be used in the front-end as the entries under the 'Flow Executions' column (in the Flow/Job history view).

By default, the finishTime value of the job is used. However, this can be configured in the scheduler configuration,
so that another field is used instead, with the appropriate formatting to convert it to a long value.

This method can be extended to include other flowtimefield and flowtimetype.
app/com/linkedin/drelephant/util/Utils.java