转换日期的NSString一个NSDate转换日期的NSString一个NSDate(Convert

2019-05-12 06:58发布

这可能是一个愚蠢的问题,但我似乎无法找到在这里或文档中的答案。

我想要一个NSString转换,如@“9/22/2010 3:45 PM”到一个NSDate。

我知道使用NSDateFormatter,但问题是

  1. 这个月可能是一个或两个数字
  2. 同样,日期可能是一个或两个数字
  3. 时间可能是一个或两个数字
  4. 我该怎么办AM / PM?

Answer 1:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MM/dd/yyyy h:mm a"];
NSDate *date = [dateFormat dateFromString:dateStr];
[dateFormat release];

有2位天或2位数月份没有问题。

这必须帮助你。



Answer 2:

您可以解析NSStringNSDate使用NSDateFormatter类。 请参阅文档的详细信息:

NSDateFormatter的实例创建NSDate的(和NSCalendarDate)对象的字符串表示,和日期和时间的文本表示转换成NSDate的对象。



Answer 3:

我有同样的问题,不知道为什么NSDateFormatter不工作,我(的iOS5 - Xcode的4.3.2),但是这个工作我出去:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];
[dateFormatter setDateFormat:@"dd-MM-yyyy"];
NSString *dateString = @"05-06-2012";
NSDate *date;
NSError *error = nil; 
if (![dateFormatter getObjectValue:&date forString:dateString range:nil error:&error]) {
    NSLog(@"Date '%@' could not be parsed: %@", dateString, error);
}
[dateFormatter release];


文章来源: Convert NSString of a date to an NSDate