MongoDB: how to parse date in 3.6 mongoDb version?

I have created Mongo Playground here

Current output is showing result based on 15min time interval. (grouping updatedAt value by 15mins and shows avg for some field)

Currently $dateToString and $dateFromString is using format to parse the date. I need to make it work for mongo version 3.6 (3.6 is not supporting format for $dateFromString)

 parsedDate: {
              $dateFromString: {
                dateString: "$_id.dateHour",
                format: "%Y-%m-%dT%H"
              }
            }

If I remove format field from both $dateToString and $dateFromString, query still runs but output for "dateHour" shows different value than expected. (as below)

"dateHour": ISODate("2020-03-20T18:46:50Z"),

format field is not supported in 3.6. Have to make this query compatible for 3.6 version. Final output has no change.

Main focus is to get "dateHour" value same after this change.

Current output :

"dateHour": ISODate("2020-03-19T18:30:00Z"),

expected output:

"dateHour": ISODate("2020-03-19T18:30:00Z"),

Use $dateToParts and its counterpart $dateFromParts

Here is an updated Playground

What it does is basically break the date into its parts:

{
  $project: {
    dateHour: {
      $dateToParts: {
        date: "$updatedAt"
      }
    }
  }
}

would produce:

{
  "dateHour": {
    "day": 19,
    "hour": 18,
    "millisecond": 0,
    "minute": 21,
    "month": 3,
    "second": 5,
    "year": 2020
  }
}

and then later you reconstruct the date from its parts:

{
  $project: {
    reconstructedDateHour: {
      $dateFromParts: {
        year: "$dateHour.year",
        month: "$dateHour.month",
        day: "$dateHour.day",
        hour: "$dateHour.hour"
      }
    }
  }
}