### Apache Airflow version

2.2.2 (latest released)

### Operating System

Ubuntu 18.04.6

### Versions of Apache Airflow Providers

_No response_

### Deployment

Other Docker-based deployment

### Deployment details

_No response_

### What happened

The deprecated variable `execution_date` raises an error when used in an f string template with date string formatting.

```python
In [1]: execution_date
DeprecationWarning: Accessing 'execution_date' from the template is deprecated and will be removed in a future version. Please use 'logical_date' or 'data_interval_start' instead.
Out[1]: <Proxy at 0x7fb6f9af81c0 wrapping DateTime(2021, 11, 18, 0, 0, 0, tzinfo=Timezone('UTC')) at 0x7fb6f9aeff90 with factory <function TaskInstance.get_template_context.<locals>.deprecated_proxy.<locals>.deprecated_func at 0x7fb6f98699d0>>

In [2]: f"{execution_date:%Y-%m-%d}"
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
----> 1 f"{execution_date:%Y-%m-%d}"

TypeError: unsupported format string passed to Proxy.__format__
```



### What you expected to happen

Executing `f"{execution_date:%Y-%m-%d}"` should return a string and not raise an error. 

### How to reproduce

```python
from datetime import datetime
from airflow import DAG
from airflow.operators.python import PythonOperator


def test_str_fmt(execution_date: datetime):
    return f"{execution_date:%Y-%m-%d}"


dag = DAG(
    dag_id="Test_Date_String",
    schedule_interval="@daily",
    catchup=False,
    default_args={
        "depends_on_past": False,
        "start_date": datetime(2021, 11, 1),
        "email": None,
        "email_on_failure": False,
        "email_on_retry": False,
        "retries": 0,
    },
)

with dag:
    test_task = PythonOperator(
        task_id="test_task",
        python_callable=test_str_fmt,
    )
```

### Anything else


```python
from datetime import datetime
...
datetime.fromisoformat(next_ds)
TypeError: fromisoformat: argument must be str
```


### Are you willing to submit PR?

- [ ] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

tests/providers/amazon/aws/sensors/test_s3_key.py
#
#
#
import unittest
from datetime import datetime
from unittest import mock
import pytest
from parameterized import parameterized
from airflow.exceptions import AirflowException
from airflow.models import DAG, DagRun, TaskInstance
from airflow.models.variable import Variable
from airflow.providers.amazon.aws.sensors.s3_key import S3KeySensor, S3KeySizeSensor
class TestS3KeySensor(unittest.TestCase):
    def test_bucket_name_none_and_bucket_key_as_relative_path(self):
        """
        Test if exception is raised when bucket_name is None
        and bucket_key is provided as relative path rather than s3:// url.
        :return:
        """
        op = S3KeySensor(task_id='s3_key_sensor', bucket_key="file_in_bucket")
        with pytest.raises(AirflowException):
            op.poke(None)
    def test_bucket_name_provided_and_bucket_key_is_s3_url(self):