NSDate心得

纠结了我好几天终于搞明白了为什么字符串转date总是相差8个小时(时区不管怎么换都没有用,大家可以试一下,也可能是我的技术不好--)

// 日期格式化  

NSString *date = @"2015-01-10 20:40:30";

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

// 下面这两个都可以

    [inputFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];

    //    [inputFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:8]];//(这个是格林尼治所在地的标准时间,也就是0时区,所以加8个时区就可以了)

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

NSString *outString = [inputFormatter dateFromString:date];

打印出来是这个date----2015-01-10 20:40:30 +0000这个是正确的

温馨提示不知道为什么我设置时区没有用,

[inputFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]// 这个没有用

+ (NSTimeZone *)systemTimeZone;// 系统时区

+ (NSTimeZone *)defaultTimeZone;// 默认时区

NSLog(@"name--%@",inputFormatter.timeZone.name);// 获取时区名称

///----------

NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(dateTime) userInfo:nil repeats:YES];

    [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];// 将事timer加入主事件徇环

---------------------计算相差多长时间----

- (void)intervalFromLastDate:(NSDate *)date1  toTheDate:(NSDate *)date2{

     double cha = [date1 timeIntervalSinceDate:date2];

    //    NSString *timeString=@"";

    //    NSString *house=@"";

    //    NSString *min=@"";

    //    NSString *sen=@"";

    

    //    sen = [NSString stringWithFormat:@"%d", (int)cha%60];

    //    秒

    //    sen=[NSString stringWithFormat:@"%@", sen];

    minutes = [NSString stringWithFormat:@"%d", (int)cha/60%60];

    //    分

    //    minutes = [NSString stringWithFormat:@"%@", min];

    // 小时

    hour = [NSString stringWithFormat:@"%d", (int)cha/3600];

    // NSLog(@"%@-----%@",hour , minutes);

    //    hour = [NSString stringWithFormat:@"%@", house];

}

posted @ 2015-02-10 21:02  YJ007  阅读(126)  评论(0编辑  收藏  举报