论NSDate 时区问题

+date 初始化一个date 类,或者用这个方法获取到的date都是零时区的标准时间,当你用NSDateFormatter 转化不设置TimeZone的转化成字符串的时候,他会将这个日期转化为当前时区的时间,这个时间就是我们本地的时间;如果你用formatter在转化的时候,转化完了他又变成了零时区的时间(这里是NSDate类)。如果我们就想NSDate这个类就是我们这个时区的时间呢怎么办呢?这个如果我们需要转化成我们当地的时间需要转化:
NSDate *date = [NSDate date];
NSDateFormatter *formater = [[NSDateFormatter alloc] init];
formater.dateFormat = @"yyyy-MM-dd hh:mm:ss";
formater.timeZone = [NSTimeZone localTimeZone];
NSString *dateString = [formater stringFromDate:date];
formater.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];
NSDate *currentDate = [formater dateFromString:dateString];
当然你转化回来的时候只需要将timeZone设置为零时区的时间就好了,这样你获取到的是什么时间就是什么时间。
这个时候你获取的到的date就是你本地时间的date。这个东西会在什么时间用到。在你要封装一个日历控件的时候,而且这个日历控件会不仅会在一个时区使用,那你么就要保证获取的日期是什么样的,那么就是什么样的,不然获取到的日期是零时区的日期,而你得到就是你本地的日期.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • iOS开发中,经常会遇到各种各样的时间问题,8小时时差,时间戳,求时间间隔,农历等等。解决办法网上比比皆是,但大多...
    小李龍彪阅读 11,589评论 1 6
  • 在iOS开发中,经常会遇到各种各样的时间问题,8小时时差,时间戳,求时间间隔,农历等等。解决办法网上比比皆是,但大...
    真巧了_嘿阅读 7,784评论 0 7
  • 通过“钻石行动”的学习,我最大的感受是:对目标的理解更深刻,在目标的制定上学到了实操性的工具,如:RSQC, GR...
    Monsieurbillsjy阅读 1,679评论 0 0
  • 一叶孕一株, 新生命如此可爱, 让人无条件喜欢, 只顾迎接欣喜, 却忽视了那 为之身疲力竭, 化为土色的枯叶。
    蜜闺的我阅读 1,468评论 0 0

友情链接更多精彩内容