现在的位置: 首页 > 综合 > 正文

NSData 和NSDateFormatter的使用总结

2017年11月10日 ⁄ 综合 ⁄ 共 2122字 ⁄ 字号 评论关闭
1、创建一个时间对象 
    NSData * date = [NSDate date];//获取当前的时间
  
    //再获取的时间date减去24小时的时间(昨天的这个时候)
    NSDate *yesterday = [NSDate dateWithTimeIntervalSinceNow:-(24*60*60)];

2、将时间按一定的格式输出
    NSData * date = [NSDate date];
    NSDateFormatter * formatter = [[NSDateFormatter alloc]init];
    //指定输出的格式   这里格式必须是和上面定义字符串的格式相同,否则输出空
    [formatter setDateFormat:@"yyyy-MM-dd"]; 
    NSString *timeString= [formatter stringFromDate:data];

    /*
     NSDateFormatter 的一些格式介绍
     
     [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; //这里要注意的是formatter的格式,如果是小写的"hh",那么时间将会跟着系统设置变成12小时或者24小时制。大写的"HH",则强制为24小时制。
     [dateFormatter setDateFormat:@"yyyy年MM月dd日#EEEE"];EEEE为星期几,EEE为周几
     [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
     [dateFormatter setDateFormat:@"yyyy年MMMMd日"];//MMMM 为xx月,一个d可以省去01日前的0
     
     */

3、 将一时间字符串换成Date对象,和把NData转换成string对象

NSDateFormatter配合NSDateNSString之间的转化 NSDateFormatter有下面2个方法:

- (NSString *)stringFromDate:(NSDate *)date;//NSDateNSString

- (NSDate *)dateFromString:(NSString *)string;//NSStringNSDate

NSString *datestring = [NSString stringWithFormat:@"1999-09-03"]; //想要设置自己想要的格式,可以用nsdateformatter这个类,这里是初始化 NSDateFormatter * formatter = [[NSDateFormatter alloc]init]; //指定输出的格式 这里格式必须是和上面定义字符串的格式相同,否则输出空 [formatter setDateFormat:@"yyyy-MM-dd"]; NSDate *newdate=[formatter dateFromString:datestring];  
    把字符串的时间转换成Date对象,用dateFromString方法
    NSDate * newdate = [formatter dateFromString:datestring];
    // 把时间转换成字符串,把Date对象转换成String对象  用stringFromDate方法
    NSString * datestring2 = [formatter stringFromDate:newdate];

4、将本地时间转换成指定时区的时间 

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

    [formatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"];

    NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"]; //东八区时间

    [formatter setTimeZone:timeZone];

    NSString *loctime = [formatter stringFromDate:date];

    [formatter release];

    现在loctime就是指定时区的时间字符串了

5、将时间戳 转变为标准时间

    NSTimeInterval time=[timestamp doubleValue]; // timetamp时间戳字符串

    NSDate *detaildate=[NSDate dateWithTimeIntervalSince1970:time];

    NSLog(@"date:%@",[detaildate description]);

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

    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

    [dateFormatter setLocale:[NSLocale currentLocale]];

    NSString *timeString  = [dateFormatter stringFromDate:detaildate];



抱歉!评论已关闭.