【问题标题】:Divide a string (as a date) to get a particular part of the string (as a month)分割一个字符串(作为日期)以获得字符串的特定部分(作为一个月)
【发布时间】:2011-11-09 17:56:09
【问题描述】:

我正在从网络服务器获取一些数据。在此数据中有一个日期(即 11-07-1978)。我想将月份作为整数获取,例如 (int month = 7)。

我试图从字符串中创建一个 NSDate 并使用 NSDateComponents 将月份作为一个组件。但是我只得到 1 的值。

这是我的代码的 sn-p:

 NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
        dateFormatter.dateFormat = @"yyyy-MM-dd";
        NSDate *dateFromString = [dateFormatter dateFromString:[[NSUserDefaults standardUserDefaults] objectForKey:@"result_expdate"]];
    NSDateComponents *components = [[NSCalendar currentCalendar] components:NSWeekCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit fromDate:dateFromString];
        int day = [components day];    
        int month = [components month];
        int year = [components year];

NSLog(@"month = %d", month);

我怎样才能得到月份的整数?

【问题讨论】:

  • 您的日期格式在 exposition 和 code 之间不匹配 - 这是一个错字还是可能是实际问题?
  • 您说格式化日期是较大字符串的一部分。您正在做什么以将日期部分与周围内容分开,以及代码中的哪些变量对应于日期部分和/或整个字符串。

标签: iphone string date components nsdate


【解决方案1】:

这是一种快速而肮脏的方法- 这是手写的,所以可能有错字...

//chop up the string by "-"
NSString * dateString = @"11-07-2011";
NSArray * tempArray = [dateString componentsSeparatedByString:@"-"];

// set string to month
NSString * monthString = [[tempArray objectAtIndex:1]description];

//remove 0's from date if any
monthString = [monthString stringByReplacingOccurrencesOfString:@"0" withString:@""];

//change string to int
int month = [[NSString stringWithFormat:@"%@",monthString] intValue];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2015-07-10
    • 2011-07-31
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多