NSString转换成NSDate 少了8个小时

NSString转化成NSDate

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

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

NSDate *date=[formatter dateFromString:dataString];

将某一字符串直接转换成NSDate,会发现实际结果与原时间相差八小时。这是因为NSDate存储的是世界标准时(UTC),输出时需要根据时区转换为本地时间:

NSTimeZone *zone = [NSTimeZone systemTimeZone];

NSInteger interval = [zone secondsFromGMTForDate: date];

NSDate *localeDate = [date dateByAddingTimeInterval: interval];

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在iOS开发中,经常会遇到各种各样的时间问题,8小时时差,时间戳,求时间间隔,农历等等。解决办法网上比比皆是,但大...
    真巧了_嘿阅读 2,827评论 0 7
  • 1. 获得当前的时间(NSDate): + (NSDate *)currentDate { NSDate *dat...
    AbnerZhang阅读 420评论 0 0
  • .h文件 #import #define D_MINUTE60 #define D_HOUR3600 #defin...
    屈涯阅读 637评论 2 0
  • 在不断的猛烈追求下,女孩坚强的心终于还是软了下来,曾以为坚不可摧,不会随便被一个男人所轻易打动,但是他温暖的大掌,...
    飞雪雁阅读 102评论 0 1