-1

我有一个 NSString 格式的日期,内容如下:29/02/2012 12:00:00 AM

我正在尝试将其转换为 NSDate 对象,以便使用以下方法进行比较:

    NSDateFormatter *df = [[NSDateFormatter alloc] init];
    [df setDateFormat:@"dd/MM/yyyy hh:mm:ss"];

但是当我使用 dateFromString: 方法时,我得到一个空值。

我错过了什么?

谢谢。

-编辑-

    NSDateFormatter *df = [[NSDateFormatter alloc] init];
    [df setDateFormat:@"dd/MM/yyyy hh:mm:ss a"];

    NSLog(@"INFO -> Test Date: %@",[df dateFromString:testQuestions.endDate]);
    NSLog(@"INFO -> Test Date String: %@",testQuestions.endDate);

    if ([[df dateFromString:testQuestions.endDate] earlierDate:[NSDate date]])
    {
        currentTestIsBeingSolved = NO;
    }

日志:

2012-04-09 22:15:29.073 Otsuka On[27184:707] INFO -> Test Date: (null)
2012-04-09 22:15:31.816 Otsuka On[27184:707] INFO -> Test Date String: 29/02/2012 12:00:00 AM

编辑 -

正如@trudyscousin 建议的那样,我已经开始了一个新项目并添加了这个:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    NSDateFormatter *df = [[NSDateFormatter alloc] init];
    [df setDateFormat:@"dd/MM/yyyy hh:mm:ss a"];

    NSLog(@"INFO -> Test Date: %@",[df dateFromString:@"29/02/2012 12:00:00 AM"]);
...

现在我没有得到 null 但日期不一样:

2012-04-09 22:26:19.189 TestDate[54705:207] INFO -> Test Date: 2012-02-28 23:00:00 +0000

日期怎么了?

Xcode中的任何配置?

谢谢。

4

1 回答 1

3

您在日期和时间后面加上“AM”这一事实就是这样做的。您还必须为此提供:

@"dd/MM/yyyy hh:mm:ss a"
于 2012-04-09T19:47:12.743 回答