0

我试图转换一个看起来像这样的 NSString:

@"00:00 15 September 2012"

到 NSDate。

我无法弄清楚 unicode 格式需要是什么。我正在尝试这个:

@"HH:mm dd MMMM YYYY"
@"HH:mmddMMMMYYYY"

我一直试图遵守这里的规则,但无济于事。


编辑:

保罗的回答确实有效(军事时间问题除外)。我试图使用 Apple 的示例来说明如何创建格式模板,如下所示:

NSString *formatString = [NSDateFormatter dateFormatFromTemplate:@"hh:mm dd MMM yyyy" options:0
                                                              locale:[NSLocale currentLocale]];

NSDateFormatter* fmt = [NSDateFormatter new];
[fmt setDateFormat:formatString];

这会导致所有内容都吐出 null。

但是,如果我这样做:

NSDateFormatter* fmt = [NSDateFormatter new];
[fmt setDateFormat:@"hh:mm dd MMM yyyy"];

世界上一切都很好。我唯一的猜测是 NSLocale 在模拟器中不起作用?

4

1 回答 1

1

你离得不远,你需要类似的东西:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"HH:mm dd MMM yyyy";
dateFormatter.timeZone = [[NSTimeZone alloc] initWithName:@"GMT"];

NSLog(@"%@", [dateFormatter dateFromString:@"00:00 15 September 2012"]);
于 2012-09-14T23:19:00.330 回答