class_docstr: Contains methods to parse the input offset to different formats.
  
  Args:
      now (datetime):
          The point of time that the parser should calculate offset against.
class_docstr_tok: ["Contains","methods","to","parse","the","input","offset","to","different","formats",".","Args",":","now","(","datetime",")",":","The","point","of","time","that","the","parser","should","calculate","offset","against","."]
docstr: Get the year, month, day and hour based on offset diff.
  
  Args:
      offset (Optional[str]): Offset that is used for target date calcluation.
  
  Returns:
      Tuple[str]: A tuple that consists of extracted year, month, day, hour from offset date.
docstr_tok: ["Get","the","year",",","month",",","day","and","hour","based","on","offset","diff",".","Args",":","offset","(","Optional","[","str","]",")",":","Offset","that","is","used","for","target","date","calcluation",".","Returns",":","Tuple","[","str","]",":","A","tuple","that","consists","of","extracted","year",",","month",",","day",",","hour","from","offset","date","."]
code: def get_offset_date_year_month_day_hour(
      self, offset: Optional[str]
  ) -> Tuple[str]:
      """Get the year, month, day and hour based on offset diff.
  
      Args:
          offset (Optional[str]): Offset that is used for target date calcluation.
  
      Returns:
          Tuple[str]: A tuple that consists of extracted year, month, day, hour from offset date.
      """
      if offset is None:
          return (None, None, None, None)
  
      offset_dt = self.get_offset_datetime(offset)
      return (
          offset_dt.strftime("%Y"),
          offset_dt.strftime("%m"),
          offset_dt.strftime("%d"),
          offset_dt.strftime("%H"),
      )
  
file_path: sagemaker-python-sdk/src/sagemaker/feature_store/feature_processor/_input_offset_parser.py
imports: from __future__ import absolute_import
  import re
  from typing import Optional, Tuple, Union
  from datetime import datetime, timezone
  from dateutil.relativedelta import relativedelta
  from sagemaker.feature_store.feature_processor._constants import EXECUTION_TIME_PIPELINE_PARAMETER_FORMAT
label_desc: Use image node_id 4 for calling the InputOffsetParser obj's underlying member method code with example usage: obj.get_offset_date_year_month_day_hour(offset) and returns: offset_dt,  offset_dt,  offset_dt,  offset_dt, None,  None,  None,  None