5.NSDateFormatter

NSDateformatter

介绍

  • NSDateFormatter是NSFormatter的子类

一般设置

    //初始化
    NSDateFormatter *dateF= [[NSDateFormatter alloc] init];

    //系统提供的时间显示方式
    //DdateStyle:显示日期类的时间(2015/05/12)
    //timeStyle:显示具体时间(下午 10:35)
    dateF.dateStyle = kCFDateFormatterShortStyle;
    dateF.timeStyle = kCFDateFormatterShortStyle;

    //设置语言(en_US:美国  "zh_CN:中国)
    dateF.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];

格式化

    //HH是24小时制,hh是12小时制,zzz为时区(可省略), EEEE为星期几,EEE为周几
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss #EEEE zzz"];
    NSString *strDate = [dateFormatter stringFromDate:[NSDate date]];
    NSLog(@"%@", strDate);

时间风格

    //kCFDateFormatterNoStyle       无输出
    //kCFDateFormatterShortStyle    10/29/12, 2:27 PM
    //kCFDateFormatterMediumStyle   Oct 29, 2012, 2:36:59 PM
    //kCFDateFormatterLongStyle     October 29, 2012, 2:38:46 PM GMT+08:00
    //kCFDateFormatterFullStyle     Monday, October 29, 2012, 2:39:56 PM China Standard Time
    dateF.dateStyle = kCFDateFormatterShortStyle;
    dateF.timeStyle = kCFDateFormatterShortStyle;

获取所需要的时间

//获取星期的时候是以星期天为开始计算
    NSDateFormatter *formatter =[[NSDateFormatter alloc] init];

    [formatter setTimeStyle:NSDateFormatterMediumStyle];

    NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier: NSCalendarIdentifierGregorian];

    NSDateComponents *comps = [[NSDateComponents alloc] init];

    NSInteger unitFlags = NSCalendarUnitYear 
                        | NSCalendarUnitMonth 
                        | NSCalendarUnitDay 
                        | NSCalendarUnitWeekday
                        | NSCalendarUnitHour 
                        | NSCalendarUnitMinute 
                        | NSCalendarUnitSecond;

    comps = [calendar components:unitFlags fromDate:[NSDate date]];

    NSInteger week = [comps weekday];

    NSInteger year=[comps year];

    NSInteger month = [comps month];

    NSInteger day = [comps day];

    NSInteger hour = [comps hour];

    NSInteger min = [comps minute];

    NSInteger sec = [comps second];

    NSLog(@"week %ld",(long)week);

格式化日期字符串,常用参数

格式化日期字符串,copy一份常用参数:

a: AM/PM (上午/下午)

A: 0~86399999 (一天的第A微秒)

c/cc: 1~7 (一周的第一天, 周天为1)

ccc: Sun/Mon/Tue/Wed/Thu/Fri/Sat (星期几简写)

cccc: Sunday/Monday/Tuesday/Wednesday/Thursday/Friday/Saturday (星期几全拼)

d: 1~31 (月份的第几天, 带0)

D: 1~366 (年份的第几天,带0)

e: 1~7 (一周的第几天, 带0)

E~EEE: Sun/Mon/Tue/Wed/Thu/Fri/Sat (星期几简写)

EEEE: Sunday/Monday/Tuesday/Wednesday/Thursday/Friday/Saturday (星期几全拼)

F: 1~5 (每月的第几周, 一周的第一天为周一)

g: Julian Day Number (number of days since 4713 BC January 1) 未知

G~GGG: BC/AD (Era Designator Abbreviated) 未知

GGGG: Before Christ/Anno Domini 未知

h: 1~12 (0 padded Hour (12hr)) 带0的时, 12小时制

H: 0~23 (0 padded Hour (24hr))  带0的时, 24小时制

k: 1~24 (0 padded Hour (24hr) 带0的时, 24小时制

K: 0~11 (0 padded Hour (12hr)) 带0的时, 12小时制

L/LL: 1~12 (0 padded Month)  第几月

LLL: Jan/Feb/Mar/Apr/May/Jun/Jul/Aug/Sep/Oct/Nov/Dec 月份简写

LLLL: January/February/March/April/May/June/July/August/September/October/November/December 月份全称

m: 0~59 (0 padded Minute) 分钟

M/MM: 1~12 (0 padded Month) 第几月

MMM: Jan/Feb/Mar/Apr/May/Jun/Jul/Aug/Sep/Oct/Nov/Dec

MMMM: January/February/March/April/May/June/July/August/September/October/November/December

q/qq: 1~4 (0 padded Quarter) 第几季度

qqq: Q1/Q2/Q3/Q4 季度简写

qqqq: 1st quarter/2nd quarter/3rd quarter/4th quarter 季度全拼

Q/QQ: 1~4 (0 padded Quarter) 同小写

QQQ: Q1/Q2/Q3/Q4 同小写

QQQQ: 1st quarter/2nd quarter/3rd quarter/4th quarter 同小写

s: 0~59 (0 padded Second) 秒数

S: (rounded Sub-Second) 未知

u: (0 padded Year) 未知

v~vvv: (General GMT Timezone Abbreviation) 常规GMT时区的编写

vvvv: (General GMT Timezone Name) 常规GMT时区的名称

w: 1~53 (0 padded Week of Year, 1st day of week = Sunday, NB: 1st week of year starts from the last Sunday of last year) 一年的第几周, 一周的开始为周日,第一周从去年的最后一个周日起算

W: 1~5 (0 padded Week of Month, 1st day of week = Sunday) 一个月的第几周

y/yyyy: (Full Year) 完整的年份

yy/yyy: (2 Digits Year)  2个数字的年份

Y/YYYY: (Full Year, starting from the Sunday of the 1st week of year) 这个年份未知干嘛用的

YY/YYY: (2 Digits Year, starting from the Sunday of the 1st week of year) 这个年份未知干嘛用的

z~zzz: (Specific GMT Timezone Abbreviation) 指定GMT时区的编写

zzzz: (Specific GMT Timezone Name) Z: +0000 (RFC 822 Timezone) 指定GMT时区的名称

自定义月份星期等字符

  • [dateFormatter setAMSymbol:@”AM”]; (例子)

Managing AM and PM Symbols

    – AMSymbol
    – setAMSymbol:
    – PMSymbol
    – setPMSymbol:

Managing Weekday Symbols

    – weekdaySymbols
    – setWeekdaySymbols:
    – shortWeekdaySymbols
    – setShortWeekdaySymbols:
    – veryShortWeekdaySymbols
    – setVeryShortWeekdaySymbols:
    – standaloneWeekdaySymbols
    – setStandaloneWeekdaySymbols:
    – shortStandaloneWeekdaySymbols
    – setShortStandaloneWeekdaySymbols:
    – veryShortStandaloneWeekdaySymbols
    – setVeryShortStandaloneWeekdaySymbols:

Managing Month Symbols

    – monthSymbols
    – setMonthSymbols:
    – shortMonthSymbols
    – setShortMonthSymbols:
    – veryShortMonthSymbols
    – setVeryShortMonthSymbols:
    – standaloneMonthSymbols
    – setStandaloneMonthSymbols:
    – shortStandaloneMonthSymbols
    – setShortStandaloneMonthSymbols:
    – veryShortStandaloneMonthSymbols
    – setVeryShortStandaloneMonthSymbols:

Managing Quarter Symbols

    – quarterSymbols
    – setQuarterSymbols:
    – shortQuarterSymbols
    – setShortQuarterSymbols:
    – standaloneQuarterSymbols
    – setStandaloneQuarterSymbols:
    – shortStandaloneQuarterSymbols
    – setShortStandaloneQuarterSymbols:

Managing Era Symbols

    – eraSymbols
    – setEraSymbols:
    – longEraSymbols
    – setLongEraSymbols:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值