我正在为我的iOS应用 sqlite存储数据列表。在数据库中,一行“addedOn”以格式'30 -Jul-2014 07:43:20'存储来自服务器响应的日期。 在这里,我在'addedOn'列上尝试了很多东西但是无法在ASC / DESC顺序中获取日期。 其他一些细节是
"SELECT * FROM tableName ORDER BY datetime(addedOn) DESC LIMIT 1"
& "SELECT * FROM tableName ORDER BY date(addedOn) DESC LIMIT 1" & "SELECT * FROM tableName ORDER BY addedOn DESC LIMIT 1".
但是所有这些查询都未能给我预期的结果。
我尝试将自己的日期换成另一种格式,同时在自己的数据库中插入,但是以'yyyy-MM-dd HH:mm:ss'
等其他日期格式转换此日期格式根本不起作用。 对于尝试过的代码:
NSString * dateString = @“30-Jul-2014 07:43:20”; NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@“yyyy-MM-dd HH:mm:ss”]; NSDate * dateFromString = [[NSDate alloc] init]; dateFromString = [dateFormatter dateFromString:dateString];
NSString *stringDate = [dateFormatter stringFromDate:dateFromString];
NSLog(@"stringDate %@", stringDate);
所以我的问题是,这可以转换为任何其他格式的此类型格式,或者是否有任何我缺少的东西。请分享您的想法并建议我需要做的更改。任何帮助表示赞赏。
答案 0 :(得分:1)
您的dataFormat似乎有误。请尝试以下DateFormat。
[dateFormatter setDateFormat:@"dd-MMM-yyyy HH:mm:ss"];
NSDate *date = [dateFormatter dateFromString:yourDateString];
这将为您提供确切的日期。
希望有所帮助......
答案 1 :(得分:1)
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"creationDate" ascending:YES];
尝试NSPredict并使用上面的代码
答案 2 :(得分:1)
我的数据库是SQLite&格式日期" dd-mmm-yyyy HH:mm:ss" 以下查询的工作原理..
SELECT * FROM TableName ORDER BY addedOn 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"
答案 3 :(得分:1)
感谢大家的时间,并向我建议我需要做的改变。 在NS中存储NSDate而不是在NSString中转换NSDate然后在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];
并且
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];
在这种情况下,在DB中插入后的日期为“2014-07-30 02:13:20 +0000”格式。在此日期列的排序工作正常。