美文网首页
OC中的NSDate与NSDateFormatter

OC中的NSDate与NSDateFormatter

作者: dongzhensong | 来源:发表于2019-06-12 09:22 被阅读0次

背景知识
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实例过程中不要加上当前时区时差,原因参考背景知识

相关文章

网友评论

      本文标题:OC中的NSDate与NSDateFormatter

      本文链接:https://www.haomeiwen.com/subject/lwtkfctx.html