Why ignores the DateComponentsFormatter the maximumUnitCount when padding?

While I was playing around with the DateComponentsFormatter I noticed that it seems to ignore the maximumUnitCount property when the zeroFormattingBehavior is set to .pad.

import Foundation

let interval: TimeInterval = 100

let formatter = DateComponentsFormatter()
formatter.allowedUnits = [.hour, .minute, .second]
formatter.maximumUnitCount = 2
formatter.unitsStyle = .abbreviated
formatter.zeroFormattingBehavior = .pad

formatter.string(from: interval)

The code above results in "0h 1m 40s", but I would expect it to print "1m 40s".

The reason I set the zeroFormattingBehavior to pad the result is, because I want it to always return two units for a better comparison when formatting multiple results, even when the interval is 0.
For example an interval of 0 should result in "0m 0s".

Is the behaviour intended and if yes how can I achieve the result I'm looking for?

Terms of Service

Privacy Policy

Cookie Policy