Sunteți pe pagina 1din 30

NSDateFormatter NSNumberFormatter


NSFormatter
NSNumberFormatter NSDateFormatter
NSNumberFormatter

■ NSNumberFormatter

■ NSNumberFormatter

NSNumberFormatter

NSNumberFormatter

NSNumberFormatter
setDefaultFormatterBehavior: NSNumberFormatterBehavior10_4
setFormatterBehavior:

NSMakeNumberFormatters10_4 YES true


NSNumberFormatter

init
NSDecimalNumber
NSNumber
NSDecimalNumber setGeneratesDecimalNumbers: YES
NSNumber

NSNumberFormatter

NSNumberFormatterNoStyle NSNumberFormatterDecimalStyle
NSNumberFormatterCurrencyStyle NSNumberFormatterPercentStyle
NSNumberFormatterScientificStyle NSNumberFormatterSpellOutStyle

NSFormatter
getObjectValue:forString:errorDescription: NSNumberFormatter
stringFromNumber: numberFromString:
getObjectValue:forString:range:error:
NSNumberFormatter
NSString

getObjectValue:forString:range:error:

NSError
getObjectValue:forString:errorDescription:
NSFormatter
getObjectValue:forString:errorDescription:
YES

getObjectValue:forString:range:error:

NSFormatter NSCell
NSFormatter getObjectValue:forString:errorDescription:
getObjectValue:forString:range:error:

'

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];


[numberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[numberFormatter setFormat:@"0.00%;0.00%;-0.00%"];
NSNumber *four = [NSNumber numberWithFloat:4.0];
NSLog(@"%@", [numberFormatter stringFromNumber:four]);
// output: "400.00%"

NSNumberFormatter

NSNumberFormatterPercentStyle

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];


[numberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[numberFormatter setNumberStyle:NSNumberFormatterPercentStyle];
NSNumber *four = [NSNumber numberWithFloat:4.0];
NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[numberFormatter setLocale:usLocale];
NSLog(@"en_US: %@", [numberFormatter stringFromNumber:four]);
// output: "en_US: 400%"

NSLocale *faLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"fa_IR"];


[numberFormatter setLocale:faLocale];
NSLog(@"fa_IR: %@", [numberFormatter stringFromNumber:four]);
// output: "fa_IR: "

NSNumberFormatter setMaximumFractionDigits:
NSDateFormatter

■ NSDateFormatter

■ NSDateFormatter

NSDateFormatter

NSDateFormatter

NSDateFormatter
setDefaultFormatterBehavior: NSDateFormatterBehavior10_4
setFormatterBehavior:

NSMakeDateFormatters10_4 YES true


NSDateFormatter

init

NSCalendarDate
NSDate NSCalendarDate
setGeneratesCalendarDates: NSDate
NSDateFormatter

NSDateFormatterNoStyle NSDateFormatterShortStyle NSDateFormatterMediumStyle


NSDateFormatterLongStyle NSDateFormatterFullStyle

// assume default behavior set for class using


// [NSDateFormatter setDefaultFormatterBehavior:NSDateFormatterBehavior10_4];
NSDateFormatter *dateFormatter =
[[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
NSDate *date =
[NSDate dateWithTimeIntervalSinceReferenceDate:118800];
NSString *formattedDateString = [dateFormatter stringFromDate:date];
NSLog(@"formattedDateString for locale %@: %@",
[[dateFormatter locale] localeIdentifier], formattedDateString);
// Output: formattedDateString for locale en_US: Jan 2, 2001

NSFormatter
getObjectValue:forString:errorDescription: NSDateFormatter
stringFromDate: dateFromString:
getObjectValue:forString:range:error:
NSDateFormatter
NSString

getObjectValue:forString:range:error:

NSError
getObjectValue:forString:errorDescription:
NSFormatter
getObjectValue:forString:errorDescription:
YES

getObjectValue:forString:range:error:

NSFormatter NSCell
NSFormatter getObjectValue:forString:errorDescription:
getObjectValue:forString:range:error:

NSDateFormatter allowsNaturalLanguage

'

NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];


[inputFormatter setDateFormat:@"yyyy-MM-dd 'at' HH:mm"];

NSDate *formatterDate = [inputFormatter dateFromString:@"1999-07-11 at 10:30"];

NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];


[outputFormatter setDateFormat:@"HH:mm 'on' EEEE MMMM d"];

NSString *newDateString = [outputFormatter stringFromDate:formatterDate];

NSLog(@"newDateString %@", newDateString);


// For US English, the output is:
// newDateString 10:30 on Sunday July 11
NSCell setFormatter:

NSNumberFormatter NSTextField setFormatter:

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];


[numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[[textField cell] setFormatter:numberFormatter];

NSDateFormatter
contactsForm

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];


[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
[[contactsForm cells] makeObjectsPerformSelector:@selector(setFormatter:)
withObject:dateFormatter]

objectValue

■ NSDecimalNumber
NSNumber

■ NSCalendarDate
NSDate

setStringValue
NSControl NSFormatter
getObjectValue:forString:errorDescription:
isPartialStringValid:proposedSelectedRange:originalString:originalSelectedRange:errorDescription:
isPartialStringValid:newEditingString:errorDescription:
control:didFailToFormatString:errorDescription:
control:didFailToValidatePartialString:errorDescription:
NSDateFormatter *dateFormat = [[NSDateFormatter alloc]
initWithDateFormat:@"%b %1d %Y" allowNaturalLanguage:NO];

1
0

strftime()
"%b %d %Y" "Mar 15 1994"
"7/21/2003"
NSNumberFormatter *numberFormatter =
[[[NSNumberFormatter alloc] init] autorelease];

setFormat

// specify just positive format


[numberFormatter setFormat:@"$#,##0.00"];

// specify positive and negative formats


[numberFormatter setFormat:@"$#,##0.00;($#,##0.00)"];

// specify positive, zero, and negative formats


[numberFormatter setFormat:@"$#,###.00;0.00;($#,##0.00)"];

setFormat: setPositiveFormat:
setNegativeFormat:

textAttributesForPositiveValues
setTextAttributesForPositiveValues:
textAttributesForNegativeValues
setTextAttributesForNegativeValues:
attributedStringForZero
setAttributedStringForZero:
attributedStringForNil
setAttributedStringForNil:
attributedStringForNotANumber
setAttributedStringForNotANumber:

NSNumberFormatter *numberFormatter =
[[[NSNumberFormatter alloc] init] autorelease];
NSMutableDictionary *newAttrs = [NSMutableDictionary dictionary];

[numberFormatter setFormat:@"$#,##0.00;($#,##0.00)"];
[newAttrs setObject:[NSColor redColor] forKey:@"NSColor"];
[numberFormatter setTextAttributesForNegativeValues:newAttrs];
[[textField cell] setFormatter:numberFormatter];

, .

// use setFormat:
numberFormatter.setFormat("#,###");

// use setHasThousandSeparators:
numberFormatter.setHasThousandSeparators(true);

// use setThousandSeparator:
numberFormatter.setThousandSeparator("_");

// use setFormat:
[numberFormatter setFormat:@"#,###"];

// use setHasThousandSeparators:
[numberFormatter setHasThousandSeparators:YES];

// use setThousandSeparator:
[numberFormatter setThousandSeparator:@"_"];

setHasThousandSeparators no false

// use setFormat:
numberFormatter.setFormat("0.00");

// use setDecimalSeparator:
numberFormatter.setDecimalSeparator("-");

// use setFormat:
[numberFormatter setFormat:@"0.00"];

// use setDecimalSeparator:
[numberFormatter setDecimalSeparator:@"-"];
thousandSeparator decimalSeparator

setThousandSeparator: setDecimalSeparator:

strftime
"%m/%d/%y" "01/02/01" "%1m/%1d/%Y"
"1/2/2001"

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc]


initWithDateFormat:@"%1m/%1d/%Y" allowNaturalLanguage:NO] autorelease];
NSDate *date = [NSDate dateWithTimeIntervalSinceReferenceDate:118800];
NSString *formattedDateString = [dateFormatter stringFromDate:date];
NSLog(@"formattedDateString: %@", formattedDateString);

// Output: formattedDateString: 1/2/2001

strftime()

%% '%'

%a

%A

%b

%B

%c %X %x
%d

%e %d strftime()

%F

%H

%I

%j

%m

%M

%p

%S

%w

%x
strftime()

%X strftime()

%y

%Y

%Z strftime()

%z

@"9,990.00" 53.88
9,953.88

. ,

#
@"$#,##0.00" 76329
$76,329.00
@",0.00" @"#,#0.00"
@"#,##0.00"

1019.55

@"#,##0.00"

@"$#,##0.00"

@"___,__0.00"
■ @"positiveFormat"

@"$###,##0.00"

■ @"positiveFormat;negativeFormat"

@"###,##0.00;(###,##0.00)"

■ @"positiveFormat;zeroFormat;negativeFormat"

@"$###,###.00;0.00;($###,##0.00)"

"#,##0.00" "0" "0.00"

strftime
"%m/%d/%y" "01/02/01" "%1m/%1d/%Y"
"1/2/2001"

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc]


initWithDateFormat:@"%1m/%1d/%Y" allowNaturalLanguage:NO] autorelease];
NSDate *date = [NSDate dateWithTimeIntervalSinceReferenceDate:118800];
NSString *formattedDateString = [dateFormatter stringFromDate:date];
NSLog(@"formattedDateString: %@", formattedDateString);

// Output: formattedDateString: 1/2/2001

strftime()

%% '%'

%a
%A

%b

%B

%c %X %x

%d

%e %d strftime()

%F

%H

%I

%j

%m

%M

%p

%S

%w

%x
strftime()

%X strftime()

%y

%Y

%Z strftime()

%z
NSFormatter

NSFormatter

■ stringForObjectValue:

■ getObjectValue:forString:errorDescription:

■ attributedStringForObjectValue:withDefaultAttributes:

attributedStringForObjectValue:withDefaultAttributes:

attributedStringForObjectValue:withDefaultAttributes:
stringForObjectValue:

editingStringForObjectValue:
stringForObjectValue:

isPartialStringValid:proposedSelectedRange:originalString:originalSelectedRange:errorDescription:
isPartialStringValid:newEditingString:errorDescription:
%qx %qX

S-ar putea să vă placă și