Post on 26-Mar-2015
NSDateFormatter NSNumberFormatter
■
■
■
■
■
■
NSFormatterNSNumberFormatter NSDateFormatter
NSNumberFormatter
■ NSNumberFormatter
■ NSNumberFormatter
NSNumberFormatter
NSNumberFormatter
NSNumberFormattersetDefaultFormatterBehavior: NSNumberFormatterBehavior10_4
setFormatterBehavior:
NSMakeNumberFormatters10_4 YES trueNSNumberFormatter
init
NSDecimalNumberNSNumber
NSDecimalNumber setGeneratesDecimalNumbers: YESNSNumber
NSNumberFormatter
NSNumberFormatterNoStyle NSNumberFormatterDecimalStyleNSNumberFormatterCurrencyStyle NSNumberFormatterPercentStyleNSNumberFormatterScientificStyle NSNumberFormatterSpellOutStyle
NSFormattergetObjectValue:forString:errorDescription: NSNumberFormatter
stringFromNumber: numberFromString:getObjectValue:forString:range:error:
NSNumberFormatterNSString
getObjectValue:forString:range:error:
NSErrorgetObjectValue:forString:errorDescription:
NSFormatter
getObjectValue:forString:errorDescription:YES
getObjectValue:forString:range:error:
NSFormatter NSCellNSFormatter 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
NSDateFormattersetDefaultFormatterBehavior: NSDateFormatterBehavior10_4
setFormatterBehavior:
NSMakeDateFormatters10_4 YES trueNSDateFormatter
init
NSCalendarDateNSDate NSCalendarDatesetGeneratesCalendarDates: NSDate
NSDateFormatter
NSDateFormatterNoStyle NSDateFormatterShortStyle NSDateFormatterMediumStyleNSDateFormatterLongStyle 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
NSFormattergetObjectValue:forString:errorDescription: NSDateFormatter
stringFromDate: dateFromString:getObjectValue:forString:range:error:
NSDateFormatterNSString
getObjectValue:forString:range:error:
NSErrorgetObjectValue:forString:errorDescription:
NSFormatter
getObjectValue:forString:errorDescription:YES
getObjectValue:forString:range:error:
NSFormatter NSCellNSFormatter 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];
NSDateFormattercontactsForm
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];[dateFormatter setDateStyle:NSDateFormatterMediumStyle];[dateFormatter setTimeStyle:NSDateFormatterNoStyle];[[contactsForm cells] makeObjectsPerformSelector:@selector(setFormatter:) withObject:dateFormatter]
objectValue
■ NSDecimalNumberNSNumber
■ NSCalendarDateNSDate
setStringValue
NSControl NSFormattergetObjectValue: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];
10
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:
textAttributesForPositiveValuessetTextAttributesForPositiveValues:textAttributesForNegativeValuessetTextAttributesForNegativeValues:attributedStringForZerosetAttributedStringForZero:attributedStringForNilsetAttributedStringForNil:attributedStringForNotANumbersetAttributedStringForNotANumber:
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
%X %x%c
%d
%d strftime()%e
%F
%H
%I
%j
%m
%M
%p
%S
%w
strftime()%x
strftime()%X
%y
%Y
strftime()%Z
%z
■
@"9,990.00" 53.889,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
%X %x%c
%d
%d strftime()%e
%F
%H
%I
%j
%m
%M
%p
%S
%w
strftime()%x
strftime()%X
%y
%Y
strftime()%Z
%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