Objective c NSDateFormatter生成(空)SQLite和iOS 5.1
也许有人可以解释为什么在将字符串转换为日期时会得到空值。看起来一切正常,但我显然遗漏了一些东西 一些背景: 这个iPad应用程序将在不同的国家使用,我需要计算一下日期,看看用户上次登录后是否已经过了90天 我有一个SQLite数据库,其中DateLastIn字段设置为文本 我的对象的DateLastIn属性设置为NSDate 在填充我的记录对象时,我设置了一个NSDateFormatterObjective c NSDateFormatter生成(空)SQLite和iOS 5.1,objective-c,ios,ipad,datetime,Objective C,Ios,Ipad,Datetime,也许有人可以解释为什么在将字符串转换为日期时会得到空值。看起来一切正常,但我显然遗漏了一些东西 一些背景: 这个iPad应用程序将在不同的国家使用,我需要计算一下日期,看看用户上次登录后是否已经过了90天 我有一个SQLite数据库,其中DateLastIn字段设置为文本 我的对象的DateLastIn属性设置为NSDate 在填充我的记录对象时,我设置了一个NSDateFormatter NSDateFormatter *formatter = [[NSDateFormatter alloc]
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"]; // SQLite default date format
然后我读入了DateLastIn(使用SQLite的FMDB包装)
结果:
DateLastIn直接从DB(字符串)显示2012-04-23 18:20:51
到目前为止一切都很好。接下来,我将测试如何将其转换为NSDate对象,例如
NSDate *aDate = [[NSDate alloc] init];
aDate = [formatter dateFromString:testDate];
NSLog(@"Using formmater on string date results in: %@", aDate);
结果:
在字符串日期使用formmater会导致:(null)
我尝试过在SQLite中使用DATETIME,我尝试过在我的对象中使用NSString而不是NSDate,并且似乎在循环
非常感谢您的帮助。
NSDateFormatter
使用
对于小时格式,您需要
HH
(小时[0-23])而不是HH
(小时[1-12])。我将您的日期格式更改为HH而不是HH,它可以工作。这是我的测试代码
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; // SQLite default date format
// test SQLite as String
NSString *testDate = @"2012-04-23 18:20:51";
NSDate *aDate = [formatter dateFromString:testDate];
NSLog(@"Using formmater on string date results in: %@", aDate);
哦,哇,难怪我没有发现它,我在寻找更险恶的东西!。真是一种享受,谢谢。谢谢你,非常感谢你和丹尼尔。
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; // SQLite default date format
// test SQLite as String
NSString *testDate = @"2012-04-23 18:20:51";
NSDate *aDate = [formatter dateFromString:testDate];
NSLog(@"Using formmater on string date results in: %@", aDate);