【发布时间】:2012-02-06 20:41:06
【问题描述】:
我有一个像 Mon Feb 06 20:02:17 +0000 2012 这样的 NSString。我想用更短的方式来写,可能是:DD-MM-YY, HH:MM。我认为也许我可以将其转换为 NSDate,然后再转换为更短的 NSString,但我不知道如何将这种奇怪的日期格式转换为 NSDate。
如果您需要更多信息,请咨询我。 谢谢!
【问题讨论】:
我有一个像 Mon Feb 06 20:02:17 +0000 2012 这样的 NSString。我想用更短的方式来写,可能是:DD-MM-YY, HH:MM。我认为也许我可以将其转换为 NSDate,然后再转换为更短的 NSString,但我不知道如何将这种奇怪的日期格式转换为 NSDate。
如果您需要更多信息,请咨询我。 谢谢!
【问题讨论】:
您需要使用NSDateFormatter 告诉NSDate 原始日期的格式和您想要的格式,然后您可以像这样在两者之间进行转换:
NSString *oldDate = @"Mon Feb 06 20:02:17 +0000 2012";
NSString *oldFormat = @"EEE MMM dd HH:mm:ss ZZ yyyy";
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:oldFormat];
NSDate *date = [dateFormatter dateFromString:sourceString];
NSString *newFormat = @"dd-MM-yy, HH:mm";
[dateFormatter setDateFormat:newFormat];
NSString *newDate = [dateFormatter stringFromDate:date];
【讨论】:
StackOverflow 中有类似的问题和答案以及可能对您有所帮助的教程:
教程: http://iosdevelopertips.com/cocoa/date-formatters-examples-take-3.html
类似问题:
编辑
NSString *dateStr = @"20081122";
// Convert string to date object
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyyMMdd"];
NSDate *date = [dateFormat dateFromString:dateStr];
// Convert date object to desired output format
[dateFormat setDateFormat:@"EEEE MMMM d, YYYY"];
dateStr = [dateFormat stringFromDate:date];
【讨论】:
您可以使用其中一种方法转换为 NSDate:
- (NSDate *)dateFromString:(NSString *)string
然后使用 NSDateFormatter 将其转换为您想要的任何内容。
编辑:实际上 NSDate 有一个类方法,所以你也可以检查一下:
+ (id)dateWithString:(NSString *)aString
【讨论】: