+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。这个东西会在什么时间用到。在你要封装一个日历控件的时候,而且这个日历控件会不仅会在一个时区使用,那你么就要保证获取的日期是什么样的,那么就是什么样的,不然获取到的日期是零时区的日期,而你得到就是你本地的日期.
论NSDate 时区问题
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。