OC中的NSDate与NSDateFormatter

2019-06-12  本文已影响0人  dongzhensong

背景知识
1.UTC,即世界标准时间或世界协调时间,它不从属于任何一个时区;
2.NSDate,时间是以UTC时间为标准的,所以当世界任何一个角落同一时间任何一个人调用[NSDate date]的时候,返回的date是相同的;
3.NSDateFormatter,即时间格式化工具类,当他将NSDate转换为NSString的过程中会考虑当前地区的时区,将NSDate+时区时差转换为NSString

在开发过程中需要注意的地方:

1. 需要使用当前时区的NSDate实例的时候

例如:获取NSDate给NSDatePicker赋值的时候
采用以下方式获取:

    NSDate *date = [NSDate date];
    NSTimeZone *zone = [NSTimeZone systemTimeZone];
    NSInteger interval = [zone secondsFromGMTForDate: date];
    NSDate *newDate =  [date  dateByAddingTimeInterval: interval];

2.需要使用当前时区的时间字符串实例的时候

采用常规方式获取:

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
    NSDate *datenow = [NSDate date];
    NSString *currentTimeString = [formatter stringFromDate:datenow];

注意:在获取NSDate实例过程中不要加上当前时区时差,原因参考背景知识

上一篇 下一篇

猜你喜欢

热点阅读