zoukankan      html  css  js  c++  java
  • 字符串时间和NSDate相互转换的坑

    项目中服务器传回来的时间是这种格式的 Sep 5, 2016 6:59:05 PM
    现在要将这段字符串转换成 2016-09-05 06:59

    被坑的地方有2个点

    1. 服务器传回来的英文的Sep,调试的时候格式化用 MMM ,一直返回nil,后面通过反向打印发现返回的是 9月 中文字符 ,我晕,原来手机的格式化跟本机的中英文环境有关,这里需要加一个强制转换成英文时区
        formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
    
    1. 第二个坑的地方 一直不知道am,pm这种怎么格式化,在网上搜到说是用 tt ,然后怎么调试都没法解析出来当前的时间,最后没有办法了,只有求助谷歌大神,在stackoverflow中看到格式化用 a 就好,修改好能够很好的运行

    完整版的解析代码如下:

        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        
        formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
        formatter.dateFormat = @"MMM d , yyyy h:mm:ss a";
        
        NSDate *date = [formatter dateFromString:@"Sep 5 , 2016 11:17:08 AM"];
        NSLog(@"%@",date);
        
        //将NSDate转换成指定格式的字符串
        [formatter setDateFormat:@"yyyy-MM-dd hh:mm "];
        
        NSString *dateString = [formatter stringFromDate:date];
        
        NSLog(@"%@",dateString);
    
    

    一个小小的时间转换花掉了不少时间,主要还是自己学艺不精啊,以后还要多多努力,学到老,活到老!

  • 相关阅读:
    离线下载使用Google商店插件crx
    springboot thymeleaf 引入js
    如何保证系统重启,tomcat自动重启
    如何实现财务自由
    理财之道
    九大职场定律
    算法系列二:如何学习算法
    FastDFS结合Flask使用
    系统权限的实现
    正则表达式
  • 原文地址:https://www.cnblogs.com/qqcc1388/p/5868462.html
Copyright © 2011-2022 走看看