【发布时间】:2011-08-26 11:08:52
【问题描述】:
对于我的 iPhone 应用程序,我必须将 NSDate 对象转换为字符串,然后将字符串转换回 NSDate 对象。有人可以帮帮我吗?谢谢!
【问题讨论】:
-
与其将 NSDate 转换为字符串然后再转换回 NSDate,您可能希望保持 NSDate 原样并创建一个额外的 NSString 对象来表示它。
对于我的 iPhone 应用程序,我必须将 NSDate 对象转换为字符串,然后将字符串转换回 NSDate 对象。有人可以帮帮我吗?谢谢!
【问题讨论】:
用于从NSDate 转换为NSString
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd hh:mm:ss a"];
NSString *stringFromDate = [formatter stringFromDate:myNSDateInstance];
用于从NSString 转换为NSDate。
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd hh:mm:ss a"];
NSDate *myDate = [df dateFromString: stringFromDate];
【讨论】:
您需要查看NSDateFormatter 这正是这样做的,双向。
【讨论】:
将 NSDate 转换为 NSString
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy"];
//Optionally for time zone converstions
[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"..."]];
NSString *stringFromDate = [formatter stringFromDate:myNSDateInstance];
将 NSString 转换为 NSDate
NSString *dateString = @"01-02-2010";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
// this is imporant - we set our input date format to match our input string
// if format doesn't match you'll get nil from your string, so be careful
[dateFormatter setDateFormat:@"dd-MM-yyyy"];
NSDate *dateFromString = [[NSDate alloc] init];
// voila!
dateFromString = [dateFormatter dateFromString:dateString];
[dateFormatter release];
【讨论】: