/* NSDateFormatter.h Copyright (c) 1995-2012, Apple Inc. All rights reserved. */ #import #include @class NSLocale, NSDate, NSCalendar, NSTimeZone, NSError, NSArray, NSMutableDictionary; @interface NSDateFormatter : NSFormatter { @private NSMutableDictionary *_attributes; __strong CFDateFormatterRef _formatter; NSUInteger _counter; } // - (id)init; // designated initializer // Report the used range of the string and an NSError, in addition to the usual stuff from NSFormatter - (BOOL)getObjectValue:(out id *)obj forString:(NSString *)string range:(inout NSRange *)rangep error:(out NSError **)error; // Even though NSDateFormatter responds to the usual NSFormatter methods, // here are some convenience methods which are a little more obvious. - (NSString *)stringFromDate:(NSDate *)date; - (NSDate *)dateFromString:(NSString *)string; typedef NS_ENUM(NSUInteger, NSDateFormatterStyle) { // date and time format styles NSDateFormatterNoStyle = kCFDateFormatterNoStyle, NSDateFormatterShortStyle = kCFDateFormatterShortStyle, NSDateFormatterMediumStyle = kCFDateFormatterMediumStyle, NSDateFormatterLongStyle = kCFDateFormatterLongStyle, NSDateFormatterFullStyle = kCFDateFormatterFullStyle }; typedef NS_ENUM(NSUInteger, NSDateFormatterBehavior) { NSDateFormatterBehaviorDefault = 0, #if (TARGET_OS_MAC && !(TARGET_OS_EMBEDDED || TARGET_OS_IPHONE)) NSDateFormatterBehavior10_0 = 1000, #endif NSDateFormatterBehavior10_4 = 1040, }; + (NSString *)localizedStringFromDate:(NSDate *)date dateStyle:(NSDateFormatterStyle)dstyle timeStyle:(NSDateFormatterStyle)tstyle NS_AVAILABLE(10_6, 4_0); + (NSString *)dateFormatFromTemplate:(NSString *)tmplate options:(NSUInteger)opts locale:(NSLocale *)locale NS_AVAILABLE(10_6, 4_0); // no options defined, pass 0 for now // Attributes of an NSDateFormatter - (NSString *)dateFormat; - (NSDateFormatterStyle)dateStyle; - (void)setDateStyle:(NSDateFormatterStyle)style; - (NSDateFormatterStyle)timeStyle; - (void)setTimeStyle:(NSDateFormatterStyle)style; - (NSLocale *)locale; - (void)setLocale:(NSLocale *)locale; - (BOOL)generatesCalendarDates; - (void)setGeneratesCalendarDates:(BOOL)b; - (NSDateFormatterBehavior)formatterBehavior; - (void)setFormatterBehavior:(NSDateFormatterBehavior)behavior; + (NSDateFormatterBehavior)defaultFormatterBehavior; + (void)setDefaultFormatterBehavior:(NSDateFormatterBehavior)behavior; - (void)setDateFormat:(NSString *)string; - (NSTimeZone *)timeZone; - (void)setTimeZone:(NSTimeZone *)tz; - (NSCalendar *)calendar; - (void)setCalendar:(NSCalendar *)calendar; - (BOOL)isLenient; - (void)setLenient:(BOOL)b; - (NSDate *)twoDigitStartDate; - (void)setTwoDigitStartDate:(NSDate *)date; - (NSDate *)defaultDate; - (void)setDefaultDate:(NSDate *)date; - (NSArray *)eraSymbols; - (void)setEraSymbols:(NSArray *)array; - (NSArray *)monthSymbols; - (void)setMonthSymbols:(NSArray *)array; - (NSArray *)shortMonthSymbols; - (void)setShortMonthSymbols:(NSArray *)array; - (NSArray *)weekdaySymbols; - (void)setWeekdaySymbols:(NSArray *)array; - (NSArray *)shortWeekdaySymbols; - (void)setShortWeekdaySymbols:(NSArray *)array; - (NSString *)AMSymbol; - (void)setAMSymbol:(NSString *)string; - (NSString *)PMSymbol; - (void)setPMSymbol:(NSString *)string; - (NSArray *)longEraSymbols NS_AVAILABLE(10_5, 2_0); - (void)setLongEraSymbols:(NSArray *)array NS_AVAILABLE(10_5, 2_0); - (NSArray *)veryShortMonthSymbols NS_AVAILABLE(10_5, 2_0); - (void)setVeryShortMonthSymbols:(NSArray *)array NS_AVAILABLE(10_5, 2_0); - (NSArray *)standaloneMonthSymbols NS_AVAILABLE(10_5, 2_0); - (void)setStandaloneMonthSymbols:(NSArray *)array NS_AVAILABLE(10_5, 2_0); - (NSArray *)shortStandaloneMonthSymbols NS_AVAILABLE(10_5, 2_0); - (void)setShortStandaloneMonthSymbols:(NSArray *)array NS_AVAILABLE(10_5, 2_0); - (NSArray *)veryShortStandaloneMonthSymbols NS_AVAILABLE(10_5, 2_0); - (void)setVeryShortStandaloneMonthSymbols:(NSArray *)array NS_AVAILABLE(10_5, 2_0); - (NSArray *)veryShortWeekdaySymbols NS_AVAILABLE(10_5, 2_0); - (void)setVeryShortWeekdaySymbols:(NSArray *)array NS_AVAILABLE(10_5, 2_0); - (NSArray *)standaloneWeekdaySymbols NS_AVAILABLE(10_5, 2_0); - (void)setStandaloneWeekdaySymbols:(NSArray *)array NS_AVAILABLE(10_5, 2_0); - (NSArray *)shortStandaloneWeekdaySymbols NS_AVAILABLE(10_5, 2_0); - (void)setShortStandaloneWeekdaySymbols:(NSArray *)array NS_AVAILABLE(10_5, 2_0); - (NSArray *)veryShortStandaloneWeekdaySymbols NS_AVAILABLE(10_5, 2_0); - (void)setVeryShortStandaloneWeekdaySymbols:(NSArray *)array NS_AVAILABLE(10_5, 2_0); - (NSArray *)quarterSymbols NS_AVAILABLE(10_5, 2_0); - (void)setQuarterSymbols:(NSArray *)array NS_AVAILABLE(10_5, 2_0); - (NSArray *)shortQuarterSymbols NS_AVAILABLE(10_5, 2_0); - (void)setShortQuarterSymbols:(NSArray *)array NS_AVAILABLE(10_5, 2_0); - (NSArray *)standaloneQuarterSymbols NS_AVAILABLE(10_5, 2_0); - (void)setStandaloneQuarterSymbols:(NSArray *)array NS_AVAILABLE(10_5, 2_0); - (NSArray *)shortStandaloneQuarterSymbols NS_AVAILABLE(10_5, 2_0); - (void)setShortStandaloneQuarterSymbols:(NSArray *)array NS_AVAILABLE(10_5, 2_0); - (NSDate *)gregorianStartDate NS_AVAILABLE(10_5, 2_0); - (void)setGregorianStartDate:(NSDate *)date NS_AVAILABLE(10_5, 2_0); - (BOOL)doesRelativeDateFormatting NS_AVAILABLE(10_6, 4_0); - (void)setDoesRelativeDateFormatting:(BOOL)b NS_AVAILABLE(10_6, 4_0); @end #if (TARGET_OS_MAC && !(TARGET_OS_EMBEDDED || TARGET_OS_IPHONE)) @interface NSDateFormatter (NSDateFormatterCompatibility) - (id)initWithDateFormat:(NSString *)format allowNaturalLanguage:(BOOL)flag; - (BOOL)allowsNaturalLanguage; @end #endif