NSDate相差8个小时问题

NSDate * date = [NSDate date];

NSLog(@"date:%@", date);

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

[outputFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];

NSTimeZone * timezone = [NSTimeZone timeZoneForSecondsFromGMT:8 * 3600];//直接指定时区

[outputFormatter setTimeZone:timezone];//这里指定不指定时区并没有什么用

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

NSString * outputDate = [outputFormatter stringFromDate:date];

NSLog(@"outputDate:%@", outputDate);


//这里处理8个小时时间差问题,下面这三句可以解决相差8个小时问题
NSTimeZone * zone = [NSTimeZone systemTimeZone];

NSInteger interval = [zone secondsFromGMTForDate:date];

NSDate * nowDate = [date dateByAddingTimeInterval:interval];

NSLog(@"nowDate:%@", nowDate);

//所以,NSDate转字符串和直接使用NSDate的时候一定要注意,转字符串的时候不用处理差8个小时问题,直接用NSDate的时候需要处理相差8个小时的问题

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

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

NSString * outputNowDate = [outputFormatter1 stringFromDate:nowDate];

NSLog(@"outputNowDate:%@", outputNowDate);

//使用outputFormatter输出的时候总是和NSDate相差8个小时

输出:2016-09-11 18:34:49.964

2016-09-11 18:34:49.973 Date[31220:253182]

date:2016-09-11 10:34:49 +0000

2016-09-11 18:34:49.974 Date[31220:253182]

outputDate:2016-09-11 18:34:49

2016-09-11 18:34:49.974 Date[31220:253182]

nowDate:2016-09-11 18:34:49 +0000

2016-09-11 18:34:49.974 Date[31220:253182]

outputNowDate:2016-09-12 02:34:49

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程之旅

iOS开发——大大节省代码量的小技巧

1064
来自专栏猿人谷

处理日期时间NSDate

获取当前日期时间的代码如下: NSDate *dateToDay = [NSDate date]; NSDateFormatter *df = ...

1975
来自专栏青玉伏案

算法导论之最大子段和

  《算法导论》一书中对最大字段和可谓讲的是栩栩如生,楚楚动人。如果简单的说最大字段和,没有意义。而《算法导论》上举了一个股票的例子。根据股票每天结束的价格来求...

2677
来自专栏菩提树下的杨过

objective-C中的序列化(serialize)与反序列化(deserialize)

obj-c中有一类对象:NSArray,NSDictionary,NSString,NSNumber,NSDate,NSData以及它们的可变版本(指NSMut...

2085
来自专栏Alice

ios 常用的正则表达式(手机号邮箱md5加密验证空字符串等)

可以写一个nssring的category 给nsstring 增加一些方法,而这些方法就是一些正则表达式。 比如写一个叫做Helper的类  创建完了就是 N...

24310
来自专栏移动端周边技术扩展

iOS中正则表达式的三种使用方式

1695
来自专栏菩提树下的杨过

objective-C 的内存管理之-引用计数

obj-c本质就是"改进过的c语言",大家都知道c语言是没有垃圾回收(GC)机制的(注:虽然obj-c2.0后来增加了GC功能,但是在iphone上不能用,因此...

20410
来自专栏Guangdong Qi

OC 密码验证(正则+连续输入+输入过于简单判断)

2065
来自专栏陈满iOS

iOS系统源码思考:对象的引用计数存储在哪里?--从runtime源码得到的启示

iOS开发者都知道OC里面的内存管理是通过对象的引用计数来管理的,或手动MRC,或自动ARC,有些操作可以让引用计数加1,有些可以减1,一旦一个对象的引用计数为...

1322
来自专栏西二旗一哥

A interesting inheritance question between self and super

904

扫码关注云+社区

领取腾讯云代金券