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 *)componentsunitsStyle:(NSDateComponentsFormatterUnitsStyle)unitsStyleПараметры
componentsЗначение для форматирования.
unitsStyleСтиль для получающихся модулей. Используйте этот параметр, чтобы указать, хотите ли Вы к получившей строке использовать сокращенный или более разъясненный формат.
Возвращаемое значение
Строка, содержащая локализованную информацию о дате и времени.
Обсуждение
Используйте этот удобный метод отформатировать строку с помощью значений средства форматирования по умолчанию, за исключением
unitsStyleзначение.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.10 и позже.
-
allowedUnits allowedUnitsСвойствоБитовая маска calendrical модулей, таких как день и месяц для включения в выводимую строку.
Обсуждение
Позволенные единицы времени по календарю:
NSCalendarUnitYearNSCalendarUnitMonthNSCalendarUnitWeekOfMonthNSCalendarUnitDayNSCalendarUnitHourNSCalendarUnitMinuteNSCalendarUnitSecond
Присвоение любых других единиц времени по календарю к этому свойству приводит к исключению.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.10 и позже.
-
Булевская переменная, указывающая, могут ли модули нецелого числа использоваться для значений.
Объявление
Swift
var allowsFractionalUnits: BoolObjective C
@property BOOL allowsFractionalUnitsОбсуждение
Когда значение не может быть точно представлено с помощью доступных модулей, могут использоваться дробные модули. Например, если минуты не позволяются, значение «1:30» могло бы быть отформатировано как “1,5 ч”.
Значение по умолчанию этого свойства
NOfalse.Оператор импорта
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: BoolObjective C
@property BOOL collapsesLargestUnitОбсуждение
Пример того, когда это свойство могло бы применяться, при выражении ценности 63 секунд времени. Когда это свойство установлено в
YEStrue, отформатированное значение было бы «63». Когда значение этого свойстваNOfalse, отформатированное значение было бы “1 м 3 с”.Значение по умолчанию этого свойства
NOfalse.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.10 и позже.
-
Булево значение, указывающее, отражает ли получающаяся фраза неточную временную стоимость.
Объявление
Swift
var includesApproximationPhrase: BoolObjective C
@property BOOL includesApproximationPhraseОбсуждение
Установка значения этого свойства к
YEStrueдобавляет формулировка к выводимым строкам, чтобы отразить, что данная временная стоимость приблизительна и не точна. Используя это свойство приводит к более корректной формулировке, чем простое предварительное ожидание строки «О» к выводимой строке.Значение по умолчанию этого свойства
NOfalse.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.10 и позже.
-
Булево значение, указывающее, отражают ли выводимые строки остающееся количество времени.
Объявление
Swift
var includesTimeRemainingPhrase: BoolObjective C
@property BOOL includesTimeRemainingPhraseОбсуждение
Установка этого свойства к
YEStrueрезультаты в выводимых строках как “30 минут, оставаясь”. Значение по умолчанию этого свойстваNOfalse.Оператор импорта
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: NSDateComponentsFormatterUnitsStyleObjective C
@property NSDateComponentsFormatterUnitsStyle unitsStyleОбсуждение
Конфигурирует строки для использования (если таковые имеются) для имен модуля, таких как дни, часы, минуты и секунды. Используйте это свойство, чтобы указать, хотите ли Вы сокращенные или сокращенные версии имен модуля — например,
hrsвместоhours.Значение по умолчанию этого свойства
NSDateComponentsFormatterUnitsStylePositional.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.10 и позже.
-
Стиль форматирования для модулей, значение которых 0.
Объявление
Swift
var zeroFormattingBehavior: NSDateComponentsFormatterZeroFormattingBehaviorObjective 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;Константы
-
PositionalNSDateComponentsFormatterUnitsStylePositionalСтиль, использующий позицию модуля для идентификации его значения. Позиционный стиль модуля обычно используется для временных стоимостей, где час, минута и вторые значения разделяются двоеточиями. Например, один час и десять минут выведены на экран как «1:10:00». Можно использовать нулевые способы поведения форматирования далее изменить форматирование этого значения.
Доступный в OS X v10.10 и позже.
-
AbbreviatedNSDateComponentsFormatterUnitsStyleAbbreviatedСтиль, использующий наиболее сокращенное написание для модулей. Сокращенный стиль представляет самое короткое написание для стоимостей единицы. Например, один час и десять минут выведены на экран как «1:10».
Доступный в OS X v10.10 и позже.
-
ShortNSDateComponentsFormatterUnitsStyleShortСтиль, использующий короткое написание для модулей. Например, один час и десять минут выведены на экран как “1 час 10 минут”.
Доступный в OS X v10.10 и позже.
-
FullNSDateComponentsFormatterUnitsStyleFullСтиль, обстоятельно объясняющий модули полностью. Например, один час и десять минут выведены на экран как “1 час, 10 минут”.
Доступный в OS X v10.10 и позже.
-
SpellOutNSDateComponentsFormatterUnitsStyleSpellOutСтиль, обстоятельно объясняющий модули и численные значения. Например, один час и десять минут выведены на экран как “Один час, десять минут”.
Доступный в 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;Константы
-
NoneNSDateComponentsFormatterZeroFormattingBehaviorNoneНикакое поведение форматирования. Это поведение предотвращает отбрасывание нулевых значений, или добавление обнуляет для дополнения. Например, с часами, минутами и выведенными на экран секундами, сокращенное значение в течение одного часа и 10 секунд является “1 ч 0m 10-е”.
Доступный в OS X v10.10 и позже.
-
DefaultNSDateComponentsFormatterZeroFormattingBehaviorDefaultПоведение форматирования значения по умолчанию. При использовании позиционных модулей это продвижение отбрасываний поведения обнуляет, но дополняет середину и запаздывающие значения с нулями по мере необходимости. Например, с часами, минутами и выведенными на экран секундами, значение в течение одного часа и 10 секунд является «1:00:10». Для всех других стилей модуля это поведение отбрасывает все модули, значения которых 0. Например, когда дни, часы, минуты и секунды позволяются, сокращенная версия одного часа и 10 секунд выведена на экран как “1 10-е ч”.
Доступный в OS X v10.10 и позже.
-
DropLeadingNSDateComponentsFormatterZeroFormattingBehaviorDropLeadingПродвижение отбрасывания обнуляет поведение форматирования. Модули, значения которых 0, отбрасываются, запускаясь в начале последовательности. Модули продолжают быть отброшенными, пока с ненулевым значением не встречаются. Например, когда дни, часы, минуты и секунды позволяются, сокращенная версия десяти минут выведена на экран как “10 м 0s”.
Доступный в OS X v10.10 и позже.
-
DropMiddleNSDateComponentsFormatterZeroFormattingBehaviorDropMiddleСередина отбрасывания обнуляет поведение модулей. Модули, значения которых 0, отбрасываются отовсюду посреди последовательности. Например, когда дни, часы, минуты и секунды позволяются, сокращенная версия одного часа, обнуляют минуты, и пять секунд выведены на экран как “0d 1 ч 5 с”.
Доступный в OS X v10.10 и позже.
-
DropTrailingNSDateComponentsFormatterZeroFormattingBehaviorDropTrailingПоведение модулей конечного нуля отбрасывания. Модули, значение которых 0, отбрасываются, запускаясь в конце последовательности. Например, когда дни, часы, минуты и секунды позволяются, сокращенная версия одного часа выведена на экран как “0d 1 ч”.
Доступный в OS X v10.10 и позже.
-
DropAllNSDateComponentsFormatterZeroFormattingBehaviorDropAllОтбрасывание все нулевое поведение модулей. Это поведение отбрасывает все модули, значения которых 0. Например, когда дни, часы, минуты и секунды позволяются, сокращенная версия одного часа выведена на экран как “1 ч”.
Доступный в OS X v10.10 и позже.
-
PadNSDateComponentsFormatterZeroFormattingBehaviorPadДобавить дополнение обнуляет поведение. Это поведение значения клавиатур с обнуляет как надлежащее. Например, считайте значение одного часа отформатированным с помощью позиционных и сокращенных стилей модуля. Когда дни, часы, минуты и секунды позволяются, значение выведено на экран как “0d 1:00:00” использование позиционного стиля, и как “0d 1 ч 0m 0s” использование сокращенного стиля.
Доступный в OS X v10.10 и позже.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.10 и позже.
-
