NSDateFormatter用于日期和月份名称

时间:2015-03-09 06:58:04

标签: ios objective-c nsdate nsdateformatter

我正在尝试以2015年3月9日星期一的格式获取日期。但以下代码未返回所需的日期格式。我想我使用的是错误的Formatter。这是代码:

NSString *dateString = @"09-03-2015";
        NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
        [dateFormatter setDateFormat:@"dd MMMM yyyy"];
        NSDate *date = [[NSDate alloc] init];
        date = [dateFormatter dateFromString:dateString];
        NSLog(@"%@",[dateFormatter stringFromDate:date]);

5 个答案:

答案 0 :(得分:21)

试试这个......

//Getting date from string
    NSString *dateString = @"09-03-2015";
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"dd-MM-yyyy"];
    NSDate *date = [[NSDate alloc] init];
    date = [dateFormatter dateFromString:dateString];
// converting into our required date format    
    [dateFormatter setDateFormat:@"EEEE, MMMM dd, yyyy"];
    NSString *reqDateString = [dateFormatter stringFromDate:date];
    NSLog(@"date is %@", reqDateString);

LOG:2015-03-09 12:40:33.456 TestCode [1377:38775] date is Monday, March 09, 2015

答案 1 :(得分:0)

首先,您必须将dateString转换为NSDate

NSString *dateString = @"09-03-2015";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MM-yyyy"];
NSDate *date = [[NSDate alloc] init];
date = [dateFormatter dateFromString:dateString];
NSLog(@"%@",[dateFormatter stringFromDate:date]);

之后您可以使用以下格式:@"EEEE,MMMM dd, yyyy"dateValue转换为Monday, March 09, 2015之类的dateString 希望这有帮助 Helpful链接

答案 2 :(得分:0)

尝试将dateFormat属性设置为@"dd'-'MM'-'yyyy"。始终检查date symbol table的unicode。 " MMMM"表示日期月份应为完整月份名称。

答案 3 :(得分:0)

试试这个..

    NSString * yourJSONString = @"09-03-2015";
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];;
    [dateFormatter setDateFormat:@"dd-MM-yyyy"];
    [dateFormatter setLocale:[NSLocale currentLocale]];
    NSDate *dateFromString = [dateFormatter dateFromString:yourJSONString];
    [dateFormatter setDateFormat:@"EEEE,LLLL dd, yyyy"];
    NSString *output = [dateFormatter stringFromDate:dateFromString];
    NSLog(@"%@", output);

答案 4 :(得分:0)

试试这个: -

NSDate *date = [NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
NSString * format = [NSDateFormatter dateFormatFromTemplate:@"EEEEMMMMdyyyy" options:0 locale:[NSLocale currentLocale]];
[formatter setDateFormat:format];

NSString *dateFormatted = [fullDateFormatterTime stringFromDate: date];
NSLog(@"Formatted date: %@", dateFormatted);