在iOS中执行“按日期排序”查询所需的日期格式
我正在为我的iOS应用程序在sqlite中存储数据列表。DB中的一列“addedOn”以格式“30-Jul-2014 07:43:20”存储服务器响应的日期。 在这里,我在“addedOn”列上尝试了许多方法,但无法按ASC/DESC顺序获取日期。 其他一些细节如下 列“addedOn”的日期类型为DATETIME。 尝试获取所用描述的查询有: 按日期时间顺序从tableName中选择*添加描述限制1 &按日期从tableName ORDER addedOn DESC LIMIT 1中选择*并按addedOn DESC LIMIT 1从tableName ORDER中选择* 但所有这些查询都未能给出预期的结果 在插入DB it self时,我尝试将此日期转换为其他格式,但将此日期格式转换为其他日期格式(如“yyy-MM-dd HH:MM:ss”)根本不起作用。对于以下代码: NSString*dateString=@30-Jul-2014 07:43:20; NSDateFormatter*dateFormatter=[[NSDateFormatter alloc]init]; [日期格式化程序setDateFormat:@yyyy-MM-dd HH:MM:ss]; NSDate*dateFromString=[[NSDate alloc]init]; dateFromString=[dateFormatter dateFromString:dateString]在iOS中执行“按日期排序”查询所需的日期格式,ios,objective-c,iphone,sqlite,Ios,Objective C,Iphone,Sqlite,我正在为我的iOS应用程序在sqlite中存储数据列表。DB中的一列“addedOn”以格式“30-Jul-2014 07:43:20”存储服务器响应的日期。 在这里,我在“addedOn”列上尝试了许多方法,但无法按ASC/DESC顺序获取日期。 其他一些细节如下 列“addedOn”的日期类型为DATETIME。 尝试获取所用描述的查询有: 按日期时间顺序从tableName中选择*添加描述限制1 &按日期从tableName ORDER addedOn DESC LIMIT 1中选择*并按
NSString *stringDate = [dateFormatter stringFromDate:dateFromString];
NSLog(@"stringDate %@", stringDate);
所以我的问题是,是否可以将这种类型的格式转换为任何其他格式,或者我是否还缺少其他东西。请分享你的想法,并建议我需要做的改变。感谢您的帮助 您的数据格式似乎有误。尝试以下日期格式
[dateFormatter setDateFormat:@"dd-MMM-yyyy HH:mm:ss"];
NSDate *date = [dateFormatter dateFromString:yourDateString];
这会给你确切的日期
希望能有帮助
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"creationDate" ascending:YES];
尝试NSPredict并使用上述代码我的数据库带有SQLite,日期格式为dd-mmm-yyy-HH:mm:ss 下面的查询在其中工作 按ADEDON ASC从表名顺序中选择* ASC | DESC可根据要求使用 如果要转换日期格式,请执行以下操作:
NSString * dateStr = @"30-Jul-2014 07:43:20";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc]init];
[dateFormat setDateFormat:@"dd-MMM-yyyy HH:mm:ss"];
NSDate *date = [dateFormat dateFromString:dateStr];
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *finalString = [dateFormat stringFromDate:date];
这里的输出是finalString=2014-07-30 07:43:20感谢各位抽出时间,并建议我需要做的更改。 将NSDate按原样存储在DB中,而不是将NSDate转换为NSString,然后插入DB中,解决了我的问题,代码几乎没有变化 现在有两种情况下我的代码可以正常工作
NSString *dateString = MD_history.addedOn;
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"dd-MMM-yyyy HH:mm:ss"];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [df dateFromString:dateString];
及
在这种情况下,插入数据库后的日期为2014-07-30 02:13:20+0000格式。在这种情况下,日期列的排序是正确的。Balaji谢谢,但这里的插入工作正常,但在ASC/DESC顺序中提取日期失败,我尝试了上面提到的查询,但这三种查询都没有给我预期的结果。查询中是否有需要更改的内容。我认为在检索时不需要更改任何内容。您只需更改dateFormat字符串。然后尝试将其插入数据库。希望它能起作用。。。
NSString *dateString = MD_history.addedOn;
NSDateFormatter *df = [[NSDateFormatter alloc] init];
NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[df setLocale:usLocale];
[df setDateFormat:@"dd-MMM-yyyy HH:mm:ss"];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [df dateFromString:dateString];