polars.Expr.dt.strftime#

Expr.dt.strftime(format: str) Expr[source]#

Convert a Date/Time/Datetime column into a String column with the given format.

Similar to cast(pl.String), but this method allows you to customize the formatting of the resulting string.

Alias for to_string().

Parameters:
format

Format to use, refer to the chrono strftime documentation for specification. Example: "%y-%m-%d".

See also

to_string

The identical expression for which strftime is an alias.

Examples

>>> from datetime import datetime
>>> df = pl.DataFrame(
...     {
...         "datetime": [
...             datetime(2020, 3, 1),
...             datetime(2020, 4, 1),
...             datetime(2020, 5, 1),
...         ]
...     }
... )
>>> df.with_columns(
...     pl.col("datetime")
...     .dt.strftime("%Y/%m/%d %H:%M:%S")
...     .alias("datetime_string")
... )
shape: (3, 2)
┌─────────────────────┬─────────────────────┐
│ datetime            ┆ datetime_string     │
│ ---                 ┆ ---                 │
│ datetime[μs]        ┆ str                 │
╞═════════════════════╪═════════════════════╡
│ 2020-03-01 00:00:00 ┆ 2020/03/01 00:00:00 │
│ 2020-04-01 00:00:00 ┆ 2020/04/01 00:00:00 │
│ 2020-05-01 00:00:00 ┆ 2020/05/01 00:00:00 │
└─────────────────────┴─────────────────────┘

If you’re interested in the day name / month name, you can use '%A' / '%B':

>>> df.with_columns(
...     day_name=pl.col("datetime").dt.strftime("%A"),
...     month_name=pl.col("datetime").dt.strftime("%B"),
... )
shape: (3, 3)
┌─────────────────────┬───────────┬────────────┐
│ datetime            ┆ day_name  ┆ month_name │
│ ---                 ┆ ---       ┆ ---        │
│ datetime[μs]        ┆ str       ┆ str        │
╞═════════════════════╪═══════════╪════════════╡
│ 2020-03-01 00:00:00 ┆ Sunday    ┆ March      │
│ 2020-04-01 00:00:00 ┆ Wednesday ┆ April      │
│ 2020-05-01 00:00:00 ┆ Friday    ┆ May        │
└─────────────────────┴───────────┴────────────┘