<!--
{
  "availability" : [
    "iOS: 16.0.0 -",
    "iPadOS: 16.0.0 -",
    "macCatalyst: 16.0.0 -",
    "macOS: 13.0.0 -",
    "tvOS: 16.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 9.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Swift",
  "identifier" : "/documentation/Swift/Duration/TimeFormatStyle",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "Swift"
    ],
    "preciseIdentifier" : "s:s8DurationV10FoundationE15TimeFormatStyleV"
  },
  "title" : "Duration.TimeFormatStyle"
}
-->

# Duration.TimeFormatStyle

A format style that shows durations in a compact, localized format with separators.

```
struct TimeFormatStyle
```

## Overview

This style produces formatted strings that uses separators between components, like “2:03”

Create a `TimeFormatStyle` by providing a [`Duration.TimeFormatStyle.Pattern`](/documentation/Swift/Duration/TimeFormatStyle/Pattern-swift.struct) and an optional locale. The pattern specifies which units (hours, minutes, and seconds) to include in the formatted string, with optional configuration of the units. Then create a formatted string by calling [`formatted(_:)`](/documentation/Swift/Duration/formatted(_:)) on a duration, passing the style, or [`format(_:)`](/documentation/Swift/Duration/TimeFormatStyle/format(_:)) on the style, passing a duration. You can also use the style’s [`attributed`](/documentation/Swift/Duration/TimeFormatStyle/attributed-swift.property) property to create a style that produces <doc://com.apple.documentation/documentation/Foundation/AttributedString> instances, which contains attributes that indicate the unit value of formatted runs of the string.

In situations that expect a [`Duration.TimeFormatStyle`](/documentation/Swift/Duration/TimeFormatStyle), such as [`formatted(_:)`](/documentation/Swift/Duration/formatted(_:)), you can use the convenience function `Swift/Duration/TimeFormatStyle/time(pattern:)` to create a [`Duration.TimeFormatStyle`](/documentation/Swift/Duration/TimeFormatStyle), rather than using the full initializer.

If you want to reuse a style to format many durations, call [`format(_:)`](/documentation/Swift/Duration/TimeFormatStyle/format(_:)) on the style, passing in a new duration each time.

The following example creates `duration` to represent 1 hour, 10 minutes, 32 seconds, and 400 milliseconds. It then creates a [`Duration.TimeFormatStyle`](/documentation/Swift/Duration/TimeFormatStyle) to show hours, minutes, and seconds, padding the hours part to two digits and limiting the fractional seconds to two digits. When used with the [`formatted(_:)`](/documentation/Swift/Duration/formatted(_:)) method, the resulting string is `01:10:32.40`.

```
let duration = Duration.seconds(70 * 60 + 32) + Duration.milliseconds(400)
let format = duration.formatted(
    .time(pattern: .hourMinuteSecond(padHourToLength: 2,
                                     fractionalSecondsLength: 2)))
// format == "01:10:32.40"
```

## Topics

### Creating a time format style

[`init(pattern:locale:)`](/documentation/Swift/Duration/TimeFormatStyle/init(pattern:locale:))

Creates a time format style using the provided pattern and optional locale.

[`Duration.TimeFormatStyle.Pattern`](/documentation/Swift/Duration/TimeFormatStyle/Pattern-swift.struct)

The units — including hours, minutes, or seconds — and the configuration of those units, used to format a duration.

### Formatting a duration

[`format(_:)`](/documentation/Swift/Duration/TimeFormatStyle/format(_:))

Creates a locale-aware string representation from a duration value.

### Formatting a duration as an attributed string

[`attributed`](/documentation/Swift/Duration/TimeFormatStyle/attributed-swift.property)

A property that formats the duration as an attributed string.

[`Duration.TimeFormatStyle.Attributed`](/documentation/Swift/Duration/TimeFormatStyle/Attributed-swift.struct)

A format style that formats durations as attributed strings.

### Using a style pattern

[`pattern`](/documentation/Swift/Duration/TimeFormatStyle/pattern-swift.property)

The pattern to display a Duration with.

[`Duration.TimeFormatStyle.Pattern`](/documentation/Swift/Duration/TimeFormatStyle/Pattern-swift.struct)

The units — including hours, minutes, or seconds — and the configuration of those units, used to format a duration.

### Working with locales

[`locale`](/documentation/Swift/Duration/TimeFormatStyle/locale)

The locale to use when formatting the duration.

[`locale(_:)`](/documentation/Swift/Duration/TimeFormatStyle/locale(_:))

Modifies the format style to use the specified locale.

### Encoding and decoding

### Hashing

### Supporting types

### Comparing time format styles



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)