尝试转换北京时间,设置NSTimeZone即可,3种方法可达到目的,各有优缺点,如果实际应用,估计需要检测做条件判断,或者用户选择- //设置时间显示的格式
- NSString *dateStr=@"yyyy年MM月dd日 HH:mm:ss";
- //创建NSDate时间对象
- NSDate *date=[NSDate new];
- //创建时间格式对象
- NSDateFormatter *dateFormatter=[NSDateFormatter new];
- //将时间设置为上述的字符串样式
- [dateFormatter setDateFormat:dateStr];
- //转换时区,只需设置timeZone即可
- <font color="#0000ff"> (1)方法1:设置NSTimeZone为当地时间,由于当地时间为GMT+8北京时区,显示正确
- NSTimeZone *timeZone=[NSTimeZone localTimeZone];
- (2)方法2:设置NSTimeZone为系统时间,根据电脑系统所在时区而变
- NSTimeZone *timeZone=[NSTimeZone systemTimeZone];
- (3)方法3:设置NSTimeZone为GMT+8时区,与标准时间相差8小时,设置为8(小时)*3600(秒),0为格林尼治时间
- NSTimeZone *timeZone=[NSTimeZone timeZoneForSecondsFromGMT:8*3600];</font>
- //将日期设置为timeZone所设置时区
- [dateFormatter setTimeZone:timeZone];
- //获取时间
- NSString *time=[dateFormatter stringFromDate:date];
- NSLog(@"当前时间为:%@",time);
复制代码
|
|