美文网首页
论NSDate 时区问题

论NSDate 时区问题

作者: Harry_Coding | 来源:发表于2017-08-03 18:24 被阅读14次

+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 时区问题

    +date 初始化一个date 类,或者用这个方法获取到的date都是零时区的标准时间,当你用NSDateForm...

  • NSDate 时区问题

    https://blog.csdn.net/sqc3375177/article/details/53608867

  • NSDate时区问题

    (1) NSDate *date = [NSDate date];或者NSDate *date1 = [[N...

  • NSDate时区问题

    UTC介绍 iOS是用UTC表示时区的。UTC是协调世界时,又称世界统一时间、时间标准时间、国际协调时间。协调世界...

  • NSDate

    NSDate *date = [NSDate date]; //获取当前0时区时间 NSDate *date = ...

  • NSSting 与 NSDate 时间戳 恩怨情仇

    NSSting 转 NSDate NSDate 转 NSString 获取本地 NSDate 时区转换 NSDat...

  • NSDate时区转换

    1. 获取系统时区的NSDate对象 打印[NSDate date]得到的是GTM时区对应的时间也就是0时区:20...

  • 8小时时差问题

    //[NSDate date]获取的是GMT时间,下面获得某个时区的系统时间+(NSDate *)getNowDa...

  • NSDate用法

    创建//获取到的是当前时间 格林尼治 时间 +0000 表示0时区NSDate *date1 = [NSDate...

  • iOS官方文档 Foundation篇---NSDate

    NSDate 表示特定时间点,与任何日历或时区无关; 继承自NSObject; NSDate对象封装一个时间点,独...

网友评论

      本文标题:论NSDate 时区问题

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