我在mysql中有一个包含日期的varchar。我一直试图将它转换成NSDate
,但我尝试过的任何东西都没有用。来自mysql的NSString
如下所示:
2012年8月11日,上午10:17
到目前为止,与NSString
到NSDate
次转化相关的所有帖子都尚未用于此字符串。如果有人可以帮忙......
答案 0 :(得分:2)
我假设您使用JSON从MySQL(服务器)获取数据并拥有一个名为myJSONObject的JSON对象
必须使用NSJSONSerialization 等框架序列化 NOTE:
myJSONObject
使用一些详细的问题链接进行编辑
您已要求将数据转换为 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);
答案 1 :(得分:2)
要将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
使用默认值。如果您设置了当前时区,您将在转换后获得正确的日期。