iOS开发:NSDate时区与格式化问题

今天做到DatePicker,一个按钮弹出选择的日期时间,默认的NSDate Date的显示的是格林威治标准时间GMT,在中国肯定不适用,所以要转换为中国时区+8,然后也接触到ios中的日期时间格式化。

贴上代码:

//取DatePicker选择的日期时间
    NSDate *date = [DatePicker date];
    
    //时区转换,取得系统时区,取得格林威治时间差秒
    //NSTimeInterval  timeZoneOffset=[[NSTimeZone systemTimeZone] secondsFromGMT];
    //NSLog(@"%f",timeZoneOffset/60.0/60.0);
    
    //date = [date dateByAddingTimeInterval:timeZoneOffset];
    
    //格式化日期时间
    NSDateFormatter *dateformatter=[[NSDateFormatter alloc] init];
    [dateformatter setDateFormat:@"现在日期:yyyy年MM月dd日 \n 现在时刻: HH:mm:ss             "];
    NSString * dateStr=[dateformatter stringFromDate:date];
    
    //警告弹出
    NSString * strDate = [[NSString alloc] initWithFormat:@"%@",dateStr] ;
    UIAlertView * tip = [[UIAlertView alloc] initWithTitle:@"选择时间" message:strDate delegate:self cancelButtonTitle:@"确定" otherButtonTitles: nil];
    [tip show];
    [tip release];
    
    //清理
    [dateformatter release];

这里有点疑惑的是,不加上时区转换的代码,就只有格式化日期都可以自动转换为+8时区,这是为什么呢?

 

关于格式化日期的格式字符串就不用说了很简单,yyyy代表年,M代表月,d代表几号,HH小时,mm分钟,ss秒,这里要提的一点是这个是区分大小写,个数不同结果也不同,在一位的时候,比如dd是09,而d就是9。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值