code: def from_grib_date_time(message, date_key='dataDate', time_key='dataTime', epoch=DEFAULT_EPOCH):
      # type: (T.Mapping, str, str, datetime.datetime) -> int
      
      date = message[date_key]
      time = message[time_key]
      hour = time // 100
      minute = time % 100
      year = date // 10000
      month = date // 100 % 100
      day = date % 100
      data_datetime = datetime.datetime(year, month, day, hour, minute)
      # Python 2 compatible timestamp implementation without timezone hurdle
      # see: https://docs.python.org/3/library/datetime.html#datetime.datetime.timestamp
      return int((data_datetime - epoch).total_seconds())
docs: Return the number of seconds since the ``epoch`` from the values of the ``message`` keys,
      using datetime.total_seconds().
  
      :param message: the target GRIB message
      :param date_key: the date key, defaults to "dataDate"
      :param time_key: the time key, defaults to "dataTime"
      :param epoch: the reference datetime