【问题标题】:NSDateFormatter dateFromStringNSDateFormatter dateFromString
【发布时间】:2014-09-19 02:00:04
【问题描述】:

来自我的数据源的字符串格式如下:

2011-04-11 23:12:05

// dateString comes from my data source, and look like I've said like this.
dateString = @"2011-04-11 23:12:05";

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MMMM"];

NSDate *date = [formatter dateFromString:dateString];

当我在互联网上搜索此类主题时,答案始终是 dateString 格式错误。但是我的 dateString 是正确的之一,对吧?

为什么日期返回 nil?

【问题讨论】:

    标签: objective-c nsdateformatter


    【解决方案1】:

    @"MMMM" 的日期格式字符串表示您尝试解析的字符串是月份的全名(“January”、“October”等)。

    你想要的更像是:

    yyyy-MM-dd HH:mm:ss
    

    查看date formatting patterns 了解更多信息。

    【讨论】:

    • 我应该提到我想要从我的 *dateString 中获得一个带有完整月份名称的 NSString。
    • dateFromString 将产生一个 NSDate - 而不是一个字符串。
    • 我的想法是,如果我将字符串转换为日期,并将日期转换为月份名称(字符串)之后的行。但我无法跨过第一步。你和我在一起吗?
    • 现在我了解你了,戴夫。我现在的代码是这样的: NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"YYYY-MM-dd HH:mm:ss"]; NSDate *date = [dateFormat dateFromString:dateString]; [dateFormat setDateFormat:@"MMMM"]; NSString *month = [dateFormat stringFromDate: date]; [日期格式发布];谢谢!
    • 如果我想用瑞典语输入月份名称,那么我必须查看属性区域设置?
    【解决方案2】:
    // set norwegian locale
        dateFormatter.locale=[[NSLocale alloc] initWithLocaleIdentifier:@"no_NO"];;
    
        dateFormatter.dateFormat=@"MMMM";
        NSString * monthString = [[dateFormatter stringFromDate:date] capitalizedString];
        NSLog(@"month: %@", monthString);
    

    这是一个挪威的例子。用你的语言应该是“se_SE”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多