0

我在使用字符串解析日期时卡住了一段时间NSDateFormatter

字符串中的日期格式如下

2011 年 1 月 1 日凌晨 12:00:00

下面是我用来解析的代码

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"MM/dd/yyyy hh:mm:ss"];
[dateFormatter setTimeStyle:NSDateFormatterShortStyle];
[dateFormatter setDateStyle:NSDateFormatterShortStyle];
NSDate *date = [[NSDate alloc]init];
date = [dateFormatter dateFromString:@"1/1/2011 12:00:00 AM"];

此代码适用于日期 @"12/31/2011" 和格式 @"MM/dd/yyyy"

请帮忙

4

2 回答 2

2

使用我的波纹管自定义方法并将该日期解析为另一种格式...

-(NSString *)changeDateFormat:(NSString*)stringDate dateFormat:(NSString*)dateFormat getwithFormat:(NSString *)getwithFormat{

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:dateFormat];

    NSDate *date = [dateFormatter dateFromString:stringDate];

    [dateFormatter setDateFormat:getwithFormat];

    NSString *convertedString = [dateFormatter stringFromDate:date];
    //NSLog(@"Converted String : %@",convertedString);
    return convertedString;
}

像下面这样使用这种方法..

 NSString *strSDate = [self changeDateFormat:@"1/1/2011 12:00:00 AM" dateFormat:@"dd/MM/yyyy hh:mm:ss a" getwithFormat:@"dd/MM/yyyy"];
 NSLog(@"Converted String : %@",strSDate);

getwithFormat在参数中设置您想要的任何格式,并在dateFormat您的日期字符串中设置参数格式...

输出是 => 转换后的字符串:2011 年 1 月 1 日

于 2013-04-23T06:40:17.777 回答
0

尝试这个

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"MM/dd/yyyy HH:mm:ss a"];
//First format date from string
NSDate *date = [dateFormatter dateFromString:@"01/01/2011 12:00:00 AM"];

//Set date formatter to specific format
[dateFormatter setTimeStyle:NSDateFormatterShortStyle];
[dateFormatter setDateStyle:NSDateFormatterShortStyle];

//Log the value
NSLog(@"%@",[dateFormatter stringFromDate:date]);
于 2013-04-23T06:40:09.350 回答