NSDateComponentsFormatter
NSDateComponentsFormatter
объект берет количества времени и форматирует их как читаемую пользователем строку. Используйте компонентное средство форматирования даты для создания строк для интерфейса приложения. Объект средства форматирования имеет много опций для создания и сокращенные и расширенные строки. Средство форматирования принимает во внимание локаль текущего пользователя и язык при генерации строк.
Для использования этого класса создайте экземпляр, сконфигурируйте его свойства и вызовите один из его методов для генерации надлежащей строки. Свойства этого класса позволяют Вам сконфигурировать календарь и указать модули даты и времени, которые Вы хотите выведенный на экран в получившей строке. Перечисление 1 показывает, как сконфигурировать средство форматирования для создания строки “Приблизительно 5 минут, оставаясь”.
NSDateComponentsFormatter* formatter = [[NSDateComponentsFormatter alloc] init];
formatter.unitsStyle = NSDateComponentsFormatterUnitsStyleFull;
formatter.includesApproximationPhrase = YES;
formatter.includesTimeRemainingPhrase = YES;
formatter.allowedUnits = NSCalendarUnitMinute;
// Use the configured formatter to generate the string.
NSString* outputString = [formatter stringFromTimeInterval:300.0];
Методы этого класса можно вызвать безопасно от любого потока Вашего приложения. Также безопасно совместно использовать единственный экземпляр этого класса от многократных потоков с протестом, что Вы не должны изменять конфигурацию объекта, в то время как другой поток использует его для генерации строки.
Наследование
-
NSObject
-
NSFormatter
-
NSDateComponentsFormatter
-
NSObject
-
NSFormatter
-
NSDateComponentsFormatter
Соответствует
-
AnyObject
-
CVarArgType
-
Сопоставимый
-
Hashable
-
NSCoding
-
NSCopying
-
NSObjectProtocol
-
Печатаемый
-
NSCoding
-
NSCopying
-
NSObject
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.10 и позже.
-
Возвращает отформатированную строку на основе указанной информации о компоненте даты.
Объявление
Swift
func stringFromDateComponents(_
components
: NSDateComponents) -> String?Objective C
- (NSString *)stringFromDateComponents:(NSDateComponents *)
components
Параметры
components
Компонентный объект даты, содержащий информацию о дате и времени для форматирования.
allowedUnits
свойство определяет, какие компоненты даты фактически используются для генерации строки. Все другие компоненты даты проигнорированы. Этот параметр не должен бытьnil
.Возвращаемое значение
Отформатированная строка, представляющая указанную информацию о дате.
Обсуждение
Используйте этот метод для форматирования информации о дате, уже разломанной на день компонента и временные стоимости.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.10 и позже.
-
Возвращается отформатированная строка базировала в день информацию в указанном объекте.
Объявление
Swift
func stringForObjectValue(_
obj
: AnyObject) -> String?Objective C
- (NSString *)stringForObjectValue:(id)
obj
Параметры
obj
Объект, содержащий информацию о дате и времени для форматирования. Объект в этом параметре должен быть a
NSDateComponents
объект; если это не, метод повышает исключение. Этот параметр не должен бытьnil
.Возвращаемое значение
Отформатированная строка, представляющая указанную информацию о дате.
Обсуждение
Этот метод имеет то же поведение как
stringFromDateComponents:
метод.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.10 и позже.
См. также
-
Возвращает отформатированную строку на основе разницы во времени между двумя датами.
Объявление
Параметры
startDate
Время начала. Этот параметр не должен быть
nil
.endDate
Время окончания. Этот параметр не должен быть
nil
.Возвращаемое значение
Отформатированная строка, представляющая информацию о требуемом времени.
Обсуждение
Этот метод вычисляет прошедшее время между
startDate
иendDate
значения и использование, что информация для генерации строки. Например, если бы существует точно один час и различие десяти минут между запуском, и даты окончания, генерируя сокращенную строку привели бы к строке «1:10».Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.10 и позже.
-
Возвращает отформатированную строку на основе конкретного количества секунд.
Объявление
Swift
func stringFromTimeInterval(_
ti
: NSTimeInterval) -> String?Objective C
- (NSString *)stringFromTimeInterval:(NSTimeInterval)
ti
Параметры
ti
Временной интервал, измеренный в секундах. Значение должно быть конечным числом. Отрицательные числа обрабатываются как положительные числа при создании строки.
Возвращаемое значение
Отформатированная строка, представляющая интервал требуемого времени.
Обсуждение
Этот метод форматирует конкретное количество секунд в надлежащие модули. Например, если средство форматирования позволяет дисплей минут и секунд, создавая сокращенную строку для значения результаты 70 секунд в строке “10-е 1 м”.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.10 и позже.
-
Возвращает локализованную строку на основе указанных компонентов даты и параметра стиля.
Объявление
Swift
class func localizedStringFromDateComponents(_
components
: NSDateComponents, unitsStyleunitsStyle
: NSDateComponentsFormatterUnitsStyle) -> String?Objective C
+ (NSString *)localizedStringFromDateComponents:(NSDateComponents *)
components
unitsStyle:(NSDateComponentsFormatterUnitsStyle)unitsStyle
Параметры
components
Значение для форматирования.
unitsStyle
Стиль для получающихся модулей. Используйте этот параметр, чтобы указать, хотите ли Вы к получившей строке использовать сокращенный или более разъясненный формат.
Возвращаемое значение
Строка, содержащая локализованную информацию о дате и времени.
Обсуждение
Используйте этот удобный метод отформатировать строку с помощью значений средства форматирования по умолчанию, за исключением
unitsStyle
значение.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.10 и позже.
-
allowedUnits allowedUnits
СвойствоБитовая маска calendrical модулей, таких как день и месяц для включения в выводимую строку.
Обсуждение
Позволенные единицы времени по календарю:
NSCalendarUnitYear
NSCalendarUnitMonth
NSCalendarUnitWeekOfMonth
NSCalendarUnitDay
NSCalendarUnitHour
NSCalendarUnitMinute
NSCalendarUnitSecond
Присвоение любых других единиц времени по календарю к этому свойству приводит к исключению.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.10 и позже.
-
Булевская переменная, указывающая, могут ли модули нецелого числа использоваться для значений.
Объявление
Swift
var allowsFractionalUnits: Bool
Objective C
@property BOOL allowsFractionalUnits
Обсуждение
Когда значение не может быть точно представлено с помощью доступных модулей, могут использоваться дробные модули. Например, если минуты не позволяются, значение «1:30» могло бы быть отформатировано как “1,5 ч”.
Значение по умолчанию этого свойства
NO
false
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.10 и позже.
-
Календарь по умолчанию для использования при форматировании компонентов даты.
Объявление
Swift
@NSCopying var calendar: NSCalendar?
Objective C
@property(copy) NSCalendar *calendar
Обсуждение
Средство форматирования использует календарь в этом свойстве для форматирования значений, не имеющих свойственного собственного календаря. Например, средство форматирования использует этот календарь при форматировании
NSTimeInterval
значение.Значение по умолчанию этого свойства является календарем, возвращенным
autoupdatingCurrentCalendar
методNSCalendar
. Установка этого свойства кnil
заставляет средство форматирования использовать Григорианский календарь сen_US_POSIX
локаль.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.10 и позже.
-
collapsesLargestUnit collapsesLargestUnit
СвойствоБулево значение, указывающее, разрушиться ли самый большой модуль в меньшие модули, когда встречен определенный порог.
Объявление
Swift
var collapsesLargestUnit: Bool
Objective C
@property BOOL collapsesLargestUnit
Обсуждение
Пример того, когда это свойство могло бы применяться, при выражении ценности 63 секунд времени. Когда это свойство установлено в
YES
true
, отформатированное значение было бы «63». Когда значение этого свойстваNO
false
, отформатированное значение было бы “1 м 3 с”.Значение по умолчанию этого свойства
NO
false
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.10 и позже.
-
Булево значение, указывающее, отражает ли получающаяся фраза неточную временную стоимость.
Объявление
Swift
var includesApproximationPhrase: Bool
Objective C
@property BOOL includesApproximationPhrase
Обсуждение
Установка значения этого свойства к
YES
true
добавляет формулировка к выводимым строкам, чтобы отразить, что данная временная стоимость приблизительна и не точна. Используя это свойство приводит к более корректной формулировке, чем простое предварительное ожидание строки «О» к выводимой строке.Значение по умолчанию этого свойства
NO
false
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.10 и позже.
-
Булево значение, указывающее, отражают ли выводимые строки остающееся количество времени.
Объявление
Swift
var includesTimeRemainingPhrase: Bool
Objective C
@property BOOL includesTimeRemainingPhrase
Обсуждение
Установка этого свойства к
YES
true
результаты в выводимых строках как “30 минут, оставаясь”. Значение по умолчанию этого свойстваNO
false
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.10 и позже.
-
maximumUnitCount maximumUnitCount
СвойствоМаксимальное количество единиц измерения времени для включения в выводимую строку.
Обсуждение
Используйте это свойство для ограничения числа модулей, выведенных на экран в получившей строке. Например, с этим набором свойств к 2, вместо “1:10, 30-х”, получившая строка была бы «1:10». Используйте это свойство, когда Вы будете ограничены для пространства или захотите окружить значения к самому близкому большому модулю.
Значение по умолчанию этого свойства
0
, который не вызывает устранение никаких модулей.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.10 и позже.
-
unitsStyle unitsStyle
СвойствоСтиль форматирования для имен модуля.
Объявление
Swift
var unitsStyle: NSDateComponentsFormatterUnitsStyle
Objective C
@property NSDateComponentsFormatterUnitsStyle unitsStyle
Обсуждение
Конфигурирует строки для использования (если таковые имеются) для имен модуля, таких как дни, часы, минуты и секунды. Используйте это свойство, чтобы указать, хотите ли Вы сокращенные или сокращенные версии имен модуля — например,
hrs
вместоhours
.Значение по умолчанию этого свойства
NSDateComponentsFormatterUnitsStylePositional
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.10 и позже.
-
Стиль форматирования для модулей, значение которых 0.
Объявление
Swift
var zeroFormattingBehavior: NSDateComponentsFormatterZeroFormattingBehavior
Objective C
@property NSDateComponentsFormatterZeroFormattingBehavior zeroFormattingBehavior
Обсуждение
Когда значение для определенного модуля 0, нулевое поведение форматирования определяет, сохранено ли то значение или опущено от каких-либо получивших строк. Например, когда поведение форматирования
NSDateComponentsFormatterZeroFormattingBehaviorDropTrailing
, значение одного часа, десяти минут и нулевых секунд опустило бы упоминание секунд.Значение по умолчанию этого свойства
NSDateComponentsFormatterZeroFormattingBehaviorDefault
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.10 и позже.
-
Константы для указания, как обстоятельно объяснить имена модуля.
Объявление
Swift
enum NSDateComponentsFormatterUnitsStyle : Int { case Positional case Abbreviated case Short case Full case SpellOut }
Objective C
typedef enum NSDateComponentsFormatterUnitsStyle : NSInteger { NSDateComponentsFormatterUnitsStylePositional = 0, NSDateComponentsFormatterUnitsStyleAbbreviated, NSDateComponentsFormatterUnitsStyleShort, NSDateComponentsFormatterUnitsStyleFull, NSDateComponentsFormatterUnitsStyleSpellOut } NSDateComponentsFormatterUnitsStyle;
Константы
-
Positional
NSDateComponentsFormatterUnitsStylePositional
Стиль, использующий позицию модуля для идентификации его значения. Позиционный стиль модуля обычно используется для временных стоимостей, где час, минута и вторые значения разделяются двоеточиями. Например, один час и десять минут выведены на экран как «1:10:00». Можно использовать нулевые способы поведения форматирования далее изменить форматирование этого значения.
Доступный в OS X v10.10 и позже.
-
Abbreviated
NSDateComponentsFormatterUnitsStyleAbbreviated
Стиль, использующий наиболее сокращенное написание для модулей. Сокращенный стиль представляет самое короткое написание для стоимостей единицы. Например, один час и десять минут выведены на экран как «1:10».
Доступный в OS X v10.10 и позже.
-
Short
NSDateComponentsFormatterUnitsStyleShort
Стиль, использующий короткое написание для модулей. Например, один час и десять минут выведены на экран как “1 час 10 минут”.
Доступный в OS X v10.10 и позже.
-
Full
NSDateComponentsFormatterUnitsStyleFull
Стиль, обстоятельно объясняющий модули полностью. Например, один час и десять минут выведены на экран как “1 час, 10 минут”.
Доступный в OS X v10.10 и позже.
-
SpellOut
NSDateComponentsFormatterUnitsStyleSpellOut
Стиль, обстоятельно объясняющий модули и численные значения. Например, один час и десять минут выведены на экран как “Один час, десять минут”.
Доступный в OS X v10.10 и позже.
Обсуждение
Все значения даты и времени локализуются и форматируются согласно предпочтениям языка текущего пользователя.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.10 и позже.
-
-
Форматирование констант для того, когда значения содержат, обнуляет.
Объявление
Swift
struct NSDateComponentsFormatterZeroFormattingBehavior : RawOptionSetType { init(_
rawValue
: UInt) init(rawValuerawValue
: UInt) static var None: NSDateComponentsFormatterZeroFormattingBehavior { get } static var Default: NSDateComponentsFormatterZeroFormattingBehavior { get } static var DropLeading: NSDateComponentsFormatterZeroFormattingBehavior { get } static var DropMiddle: NSDateComponentsFormatterZeroFormattingBehavior { get } static var DropTrailing: NSDateComponentsFormatterZeroFormattingBehavior { get } static var DropAll: NSDateComponentsFormatterZeroFormattingBehavior { get } static var Pad: NSDateComponentsFormatterZeroFormattingBehavior { get } }Objective C
typedef enum NSDateComponentsFormatterZeroFormattingBehavior : NSUInteger { NSDateComponentsFormatterZeroFormattingBehaviorNone = (0), NSDateComponentsFormatterZeroFormattingBehaviorDefault = (1 << 0), NSDateComponentsFormatterZeroFormattingBehaviorDropLeading = (1 << 1), NSDateComponentsFormatterZeroFormattingBehaviorDropMiddle = (1 << 2), NSDateComponentsFormatterZeroFormattingBehaviorDropTrailing = (1 << 3), NSDateComponentsFormatterZeroFormattingBehaviorDropAll = (NSDateComponentsFormatterZeroFormattingBehaviorDropLeading | NSDateComponentsFormatterZeroFormattingBehaviorDropMiddle | NSDateComponentsFormatterZeroFormattingBehaviorDropTrailing ), NSDateComponentsFormatterZeroFormattingBehaviorPad = (1 << 16), } NSDateComponentsFormatterZeroFormattingBehavior;
Константы
-
None
NSDateComponentsFormatterZeroFormattingBehaviorNone
Никакое поведение форматирования. Это поведение предотвращает отбрасывание нулевых значений, или добавление обнуляет для дополнения. Например, с часами, минутами и выведенными на экран секундами, сокращенное значение в течение одного часа и 10 секунд является “1 ч 0m 10-е”.
Доступный в OS X v10.10 и позже.
-
Default
NSDateComponentsFormatterZeroFormattingBehaviorDefault
Поведение форматирования значения по умолчанию. При использовании позиционных модулей это продвижение отбрасываний поведения обнуляет, но дополняет середину и запаздывающие значения с нулями по мере необходимости. Например, с часами, минутами и выведенными на экран секундами, значение в течение одного часа и 10 секунд является «1:00:10». Для всех других стилей модуля это поведение отбрасывает все модули, значения которых 0. Например, когда дни, часы, минуты и секунды позволяются, сокращенная версия одного часа и 10 секунд выведена на экран как “1 10-е ч”.
Доступный в OS X v10.10 и позже.
-
DropLeading
NSDateComponentsFormatterZeroFormattingBehaviorDropLeading
Продвижение отбрасывания обнуляет поведение форматирования. Модули, значения которых 0, отбрасываются, запускаясь в начале последовательности. Модули продолжают быть отброшенными, пока с ненулевым значением не встречаются. Например, когда дни, часы, минуты и секунды позволяются, сокращенная версия десяти минут выведена на экран как “10 м 0s”.
Доступный в OS X v10.10 и позже.
-
DropMiddle
NSDateComponentsFormatterZeroFormattingBehaviorDropMiddle
Середина отбрасывания обнуляет поведение модулей. Модули, значения которых 0, отбрасываются отовсюду посреди последовательности. Например, когда дни, часы, минуты и секунды позволяются, сокращенная версия одного часа, обнуляют минуты, и пять секунд выведены на экран как “0d 1 ч 5 с”.
Доступный в OS X v10.10 и позже.
-
DropTrailing
NSDateComponentsFormatterZeroFormattingBehaviorDropTrailing
Поведение модулей конечного нуля отбрасывания. Модули, значение которых 0, отбрасываются, запускаясь в конце последовательности. Например, когда дни, часы, минуты и секунды позволяются, сокращенная версия одного часа выведена на экран как “0d 1 ч”.
Доступный в OS X v10.10 и позже.
-
DropAll
NSDateComponentsFormatterZeroFormattingBehaviorDropAll
Отбрасывание все нулевое поведение модулей. Это поведение отбрасывает все модули, значения которых 0. Например, когда дни, часы, минуты и секунды позволяются, сокращенная версия одного часа выведена на экран как “1 ч”.
Доступный в OS X v10.10 и позже.
-
Pad
NSDateComponentsFormatterZeroFormattingBehaviorPad
Добавить дополнение обнуляет поведение. Это поведение значения клавиатур с обнуляет как надлежащее. Например, считайте значение одного часа отформатированным с помощью позиционных и сокращенных стилей модуля. Когда дни, часы, минуты и секунды позволяются, значение выведено на экран как “0d 1:00:00” использование позиционного стиля, и как “0d 1 ч 0m 0s” использование сокращенного стиля.
Доступный в OS X v10.10 и позже.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.10 и позже.
-