code: def _postprocess_hover(self, renderer, source):
      super()._postprocess_hover(renderer, source)
      hover = self.handles.get("hover")
      if not (hover and isinstance(hover.tooltips, list)):
          return
  
      xaxis = self.handles["xaxis"]
      yaxis = self.handles["yaxis"]
  
      code = """
          var {ax} = special_vars.{ax};
          var date = new Date({ax});
          return date.toISOString().slice(0, 19).replace('T', ' ')
          """
      tooltips, formatters = [], dict(hover.formatters)
      for name, formatter in hover.tooltips:
          if isinstance(xaxis, DatetimeAxis) and formatter == "$x":
              xhover = CustomJSHover(code=code.format(ax="x"))
              formatters["$x"] = xhover
              formatter += "{custom}"
          if isinstance(yaxis, DatetimeAxis) and formatter == "$y":
              yhover = CustomJSHover(code=code.format(ax="y"))
              formatters["$y"] = yhover
              formatter += "{custom}"
          tooltips.append((name, formatter))
  
      if not bokeh34:  # https://github.com/bokeh/bokeh/issues/13598
          datetime_code = """
              if (value === -9223372036854776) {
                  return "NaN"
              } else {
                  const date = new Date(value);
                  return date.toISOString().slice(0, 19).replace('T', ' ')
              }
              """
          for key in formatters:
              if formatters[key].lower() == "datetime":
                  formatters[key] = CustomJSHover(code=datetime_code)
  
      hover.tooltips = tooltips
      hover.formatters = formatters
  
imports: import sys
  import numpy
  import param
  from bokeh.models import CustomJSHover, DatetimeAxis
  from ...core.util import cartesian_product, dimension_sanitizer, isfinite
  from ...element import Raster
  from ..util import categorical_legend
  from .chart import PointPlot
  from .element import ColorbarPlot, LegendPlot
  from .selection import BokehOverlaySelectionDisplay
  from .styles import base_properties, fill_properties, line_properties, mpl_to_bokeh
  from .util import bokeh33, bokeh34, colormesh
label_desc: Use image node_id 2 for calling the RasterPlot obj's underlying member method code with example usage: obj._postprocess_hover(renderer, source) without return types