我有一个包含日期的mysql中的varchar。我一直试图将其转换为NSDate
,但没有任何我已经尝试过的作品。从MySQL NSString
看起来是这样的:将转换日期从MySQL到NSDate
2012年8月11日,上午10:17
到目前为止有关NSString
到NSDate
转换的所有职位都没有制定该字符串。如果有人可以请帮助...
我有一个包含日期的mysql中的varchar。我一直试图将其转换为NSDate
,但没有任何我已经尝试过的作品。从MySQL NSString
看起来是这样的:将转换日期从MySQL到NSDate
2012年8月11日,上午10:17
到目前为止有关NSString
到NSDate
转换的所有职位都没有制定该字符串。如果有人可以请帮助...
我假设你使用JSON用于从MySQL(服务器)中获取数据并调用myJSONObject
JSON对象NOTE:
myJSONObject
必须使用一些框架序列化像NSJSONSerialization
编辑与一些详细的问题链接
你问到的数据2012年8月11日转换为,上午10:17但我的示例代码试图转换为2012-08-11 10:17:..,我编辑我的示例代码给你。如需更多信息,看看NSDateFormatter
敬请关注:您可以使用NSDateComponents得到变量month_from_date
。有一些关于它的问题here和here ..如果你不能,请打开一个新帖子。
NSString* dateString = [myJSONObject objectForKey:@"date"];
NSDateFormatter* fmt = [NSDateFormatter new];
[fmt setTimeZone:[NSTimeZone defaultTimeZone]];
// [fmt setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
[fmt setDateFormat:@"%@ DD,YYYY, HH:mm",month_from_date];
NSDate* dateFromString = [fmt dateFromString:dateString];
NSLog("Here is date from string: %@",dateFromString);
到NSString
转换为NSDate
,请使用NSDateFormatter
。
NSString *_dateString = @"August 11, 2012, 10:17 AM";
NSDateFormatter *_dateFormatter = [[NSDateFormatter alloc] init];
[_dateFormatter setDateFormat:@"MMMM dd, yyyy, HH:mm a"];
NSDate *_date = [_dateFormatter dateFromString:_dateString];
NSLog(@"raw date : %@", _date);
NSLog(@"formatted date : %@", [_dateFormatter stringFromDate:_date]);
输出NSDate
将包含日期:
raw date : 2012-08-10 23:17:00 +0000
formatted date : August 11, 2012, 11:17 AM
可以格式化NSDate
,只要你愿意为一个不同的输出,它是由现在登记,但你可以工作NSDate
包含日期的对象。
注:我们不知道从输入日期的时区时,我们使用的是默认其转换它,所以NSDate
。如果您设置当前时区,转换后您将获得正确的日期。
感谢您的回复。我解析json类似于你发布的方式。然而,我放入代码并仍然得到null。这可能是dateformat是错误的 - 再次,2012年8月3日星期五,上午11:20 - 是需要转换的。 – 2012-08-09 21:52:54
@DanielShaffer请参阅我的编辑 – ilhnctn 2012-08-10 07:38:03