zoukankan      html  css  js  c++  java
  • iOS dateformatter设置GMT格式时间--iOS开发系列---项目中成长的知识四

    今天在项目中开始接手客户端的签名这个模块,签名这个会在项目结束过后再单独写一下自己的心得!

    今天讲讲在签名的过程中我们需要向服务器传送一个Date值,格式要求是格林威治时间,也就是GMT时间!

    格式要求是 22 Oct 2015 10:20:35 GMT 

    而我通过[NSDate Date]获取到的格式是2015-10-22 10:20:35

    所以就上网搜寻答案

    说的是通过[NSDate Date]这个获取到的时间就是GMT地区的,所以我就觉得是转格式的地方出问题了

    但是经过一番尝试后,无论是转格式还是设置时区(其实是我没有设准)都无法得到我想要的结果

     1     NSDateFormatter* dateFormatter = [[NSDateFormatter alloc]init];
    10    [dateFormatter setDateFormat:@"dd MM yyyy HH:mm:ss "];
    11 
    12 
    13     NSString *fixString = [dateFormatter stringFromDate:[NSDate date]];
    14 
    15     NSString *dateString = [NSString stringWithFormat:@"%@ GMT",fixString];
    16 
    17     MZTLog(@"fixString == %@",fixString);
    18 
    19     MZTLog(@"nowDate == %@",[NSDate date]);

    于是和后台进行交流,让帮忙看看后台的转格式是怎样转的

    最终找到源头所在,原来是转换的格式是错误的,并且也没有设置时区为格林威治地区

    下列为我想要的结果

     NSDateFormatter* dateFormatter = [[NSDateFormatter alloc]init];
    
        NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"GMT"];
     
       [dateFormatter setTimeZone:timeZone];
       [dateFormatter setDateFormat:@"d MMM yyyy HH:mm:ss 'GMT'"];
    //设置本地化 为"en_US",如果没有这一步,则转化出来的是中国的本地时间,相差了8个小时

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

    
    
        NSString *fixString = [dateFormatter stringFromDate:[NSDate date]];
    
        MZTLog(@"fixString == %@",fixString);
        MZTLog(@"nowDate == %@",[NSDate date]);

    具体的更多的ios dateformatter 格式大全  可以参考下面一篇文章

    http://www.open-open.com/lib/view/open1374292431912.html

  • 相关阅读:
    动态规划(1)
    dockerfile构架镜像(8)
    redis(1)
    递归算法(1)
    docker commit理解构建镜像(7)
    Node fs 创建多层文件夹
    SUSE系列---修改IP和hosts文件
    本地oracle可以通过localhost连接,无法通过ip地址连接解决方法,oracle远程连接配置
    PLSQL报错: ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务
    StringUtils字符串工具类左侧补齐(leftPad)、右侧补齐(rightPad)、左右两侧补齐(center)工具方法
  • 原文地址:https://www.cnblogs.com/WayneLiu/p/4903114.html
Copyright © 2011-2022 走看看