您的位置:首页 > 移动开发 > IOS开发

IOS开发—NSDateFormatter

2015-07-27 15:44 489 查看
格式化参数如下:


G: 公元时代,例如AD公元
yy: 年的后2位
yyyy: 完整年
MM: 月,显示为1-12
MMM: 月,显示为英文月份简写,如 Jan
MMMM: 月,显示为英文月份全称,如 Janualy
dd: 日,2位数表示,如02
d: 日,1-2位显示,如 2
EEE: 简写星期几,如Sun
EEEE: 全写星期几,如Sunday
aa: 上下午,AM/PM
H: 时,24小时制,0-23
K:时,12小时制,0-11
m: 分,1-2位
mm: 分,2位
s: 秒,1-2位
ss: 秒,2位
S: 毫秒


常用日期结构:


yyyy-MM-dd HH:mm:ss.SSS
yyyy-MM-dd HH:mm:ss
yyyy-MM-dd
MM dd yyyy


代码示例:


- (void)loadBaseUI{
    //实例化
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

    //date -> string(转换为指定格式的date)
    NSDate *currentDate = [NSDate date];
    NSString *dateString = [dateFormatter stringFromDate:currentDate];
    NSLog(@"%@",dateString);

    //string -> date(dateFormatter设置的格式必须和字符串格式一致,不然返回null)
    NSDateFormatter *dateFormatter2 = [[NSDateFormatter alloc]init];
    [dateFormatter2 setDateFormat:@"yyyy年MM月dd日 HH时mm分"];

    NSString *string = @"2015年8月28日 13时55分";
    NSDate *target = [dateFormatter2 dateFromString:string];
    NSLog(@"%@",target);

    //输出
    //2015-07-16 14:10:11.771 NSDateFormatter[2950:109663] 2015-07-16 14:10:11
    //2015-07-16 14:10:11.773 NSDateFormatter[2950:109663] 2015-08-28 05:55:00 +0000
}


//获取指定时间


- (NSString *)GetTomorrowDay:(NSDate *)aDate
{
    //公里日历
    NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
    NSDateComponents *components = [gregorian components:NSCalendarUnitWeekday | NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:aDate];
    [components setDay:([components day]+1)]; //获取下一天日期

    NSDate *beginningOfWeek = [gregorian dateFromComponents:components];
    NSDateFormatter *dateday = [[NSDateFormatter alloc] init];
    [dateday setDateFormat:@"yyyy-MM-dd"];
    return [dateday stringFromDate:beginningOfWeek];
}


//获取当前时区的时间


[NSDate date]获取的是GMT时间,要想获得某个时区的时间,以下代码可以解决这个问题
NSDate *date = [NSDate date];
NSTimeZone *timeZone = [NSTimeZone systemTimeZone];
NSTimeInterval timeInterval = [timeZone secondsFromGMTForDate:date];
NSDate *localeDate = [date dateByAddingTimeInterval:timeInterval];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: