如何在ios中将日期字符串转换为NSDate

时间:2013-10-28 10:42:32

标签: ios iphone nsdate

我从网络服务获取日期和时间看起来像日期是“2013-10-29”和“11:30”(或“23:30”),但是我想要显示日期,如“29 OCT”。 2013“和时间是”上午11:30“(或”晚上11:30“)。 关于这类问题,我已经经历了很多答案,但当我尝试返回“null”而没有错误或警告时。请帮助我......

3 个答案:

答案 0 :(得分:11)

应用此代码更改手动编码的时间和日期与您的属性,它应该工作。

NSDateFormatter * dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSDate * dateNotFormatted = [dateFormatter dateFromString:@"2013-10-29"];
[dateFormatter setDateFormat:@"d MMM.YYYY"];    
NSString * dateFormatted = [dateFormatter stringFromDate:dateNotFormatter];

[dateFormatter setDateFormat:@"HH:mm"];
NSDate * timeNotFormatted = [dateFormatter dateFromString:@"11:30"];
[dateFormatter setDateFormat:@"hh:mm a"];    
NSString * timeFormatted = [dateFormatter stringFromDate:timeNotFormatter];

另一个选项是将更严格的时间和日期放在一个字符串中并使用以下格式:

    [dateFormatter setDateFormat:@"d MMM.YYYY at hh:mm a"];    

答案 1 :(得分:0)

使用NSDateFormatter。在第一种情况下,您的格式为:@"yyyy-MM-dd"@"HH:mm",第二种格式为:@"dd MMM.yyyy"@"hh:mm a"

答案 2 :(得分:0)

首次结合日期&时间就像“2013-10-29 11:30”

比使用下面的函数,如[self dateFormat:@“yyyy-NN-dd HH:ss”newFormat:@“dd MMM.yyyy hh:mm a”]

- (NSString*) dateFormat : (NSString*)date currentFormat:(NSString*) currentFormat newFormat : (NSString*) newFormat
{
    NSString *dateStr = date;
    NSDateFormatter *dtF = [[NSDateFormatter alloc] init];
    [dtF setDateFormat:currentFormat];
    NSDate *d = [dtF dateFromString:dateStr];

    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:newFormat];
    NSString * strFinalDate = [dateFormat stringFromDate:d];
    NSLog(@"%@",strFinalDate);

    [dtF release];
    [dateFormat release];

    return strFinalDate;
}

如果您希望日期和时间不同,请使用NSArray将其分开。