我在 mysql 中有一个保存日期的 varchar。我一直在尝试将其转换为NSDate
,但我没有尝试过任何工作。从NSString
mysql 看起来像这样:
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
请注意:month_from_date
您可以使用NSDateComponents获取变量。这里和这里有一些关于它的问题.. 如果你不能,请打开一个新帖子。
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);
要将 a 转换NSString
为 a 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
使用它的默认值。如果您设置当前时区,您将在转换后获得正确的日期。