iOS NSTimeZone 自定义时区的使用

需求:有时候我们需要时间提前或者晚上几个小时,那么这个如果不想自己去计算,那么值得思考的一个问题,根据时区,无疑是最好的选择。

  1. 获取系统时间
    // 下面获取到的是系统的GMT时间,也就是绝对时间,在同一时间,不同地区对应的时区的时间是不一样的,地理要学好啊。。。
    NSDate *now = [NSDate date];
NSDateFormatter *df = [[NSDateFormatter alloc]init];//时间戳格式化
df.dateFormat = @"yyyy-MM-dd HH:mm:ss"; // 格式化年月日,时分秒
df.timeZone = [NSTimeZone systemTimeZone];//系统所在时区
NSString *systemTimeZoneStr =  [df stringFromDate:now];
df.timeZone = [NSTimeZone defaultTimeZone];//默认时区,貌似和上一个没什么区别
   NSString *defaultTimeZoneStr = [df stringFromDate:now];
   df.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0 * 3600];//直接指定时区
   NSString *plus8TZStr = [df stringFromDate:now];
   df.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:-4*3600];/ /这就是GMT+0时区了
   NSString *gmtTZStr = [df stringFromDate: now];
   NSLog(@"Test Time\nSys:%@\nDefault:%@\n+8:%@\nGMT:%@",systemTimeZoneStr,defaultTimeZoneStr,plus8TZStr,gmtTZStr);

timeZoneForSecondsFromGMT 自定义时区主要依靠这个方法,
我们穿进去一个seconds 就可以了,如果我们提前12小时,那么对应的我们设置成-4*3600就可以了。
以上是简单时区的使用,如有错误之处,还望指正

你可能感兴趣的:(iOS NSTimeZone 自定义时区的使用)