It handles ambiguity too. Want to say something lasts for a period of 1 month without needing to bother checking how many days are in the current and next month? P1M. Done. Want to be more explicit and say 30 days? P30D. Want to say it in hours? Add the T separator: PT720H.
I used this kind of notation all the time when exporting logged historical data from SCADA systems into a file whose name I wanted to quickly communicate the start of a log and how long it ran:
20230701T0000-07--P30D..v101_pressure.csv
(“--” is the ISO-8601 (2004) recommended substitute for “/” in file names)
If anyone is interested, I made this Bash script to give me uptime but expressed as an ISO 8601 time period.