nsdateformatter返回nil,如何在mm-dd-yy AM / PM中设置日期格式

时间:2014-07-14 07:54:11

标签: ios objective-c nsdate nsdateformatter

我有一个这样的日期字符串:

Printing description of dateTimeString:
2014-07-15 04:15:00

我试图在07-15-2014 4:15 AM转换它。 我正在使用的代码:

NSString *dateTimeString = appointment.start_time;;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeStyle:NSDateFormatterFullStyle];
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];
[dateFormatter setDateFormat:@"MM-dd-yyyy"];
NSDate *date = [dateFormatter dateFromString:dateTimeString];//date is nil

有些人可以帮我在所需的格式中设定日期。

感谢

2 个答案:

答案 0 :(得分:1)

您没有使用正确的格式字符串:

NSString *dateTimeString = appointment.start_time;;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeStyle:NSDateFormatterFullStyle];
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *date = [dateFormatter dateFromString:dateTimeString];

这将创建正确的NSDate对象。

关于将其格式化以呈现给您的用户,我不能强调您应该使用静态格式的坚果要求系统为您提供正确的格式。

NSString *formatttedDate = [NSDateFormatter localizedStringFromDate:date dateStyle:NSDateFormatterShortStyle] timeStyle:NSDateFormatterShortStyle];

但是如果你只需要使用特定的日期格式:

[dateFormatter setDateFormat:@"MM-dd-yyyy h:mm a"];

此格式将为您提供所需的日期。

答案 1 :(得分:-1)

我认为这有助于你

    NSDateFormatter *format = [[NSDateFormatter alloc] init];
    [format setDateFormat:@"ddMMyyyy||HHmmss"];
    NSDate *now = [NSDate date];
    NSString *retStr = [format stringFromDate:now];