Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c NSDateFormatter生成(空)SQLite和iOS 5.1_Objective C_Ios_Ipad_Datetime - Fatal编程技术网

Objective c NSDateFormatter生成(空)SQLite和iOS 5.1

Objective 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]

也许有人可以解释为什么在将字符串转换为日期时会得到空值。看起来一切正常,但我显然遗漏了一些东西

一些背景:

这个iPad应用程序将在不同的国家使用,我需要计算一下日期,看看用户上次登录后是否已经过了90天

我有一个SQLite数据库,其中DateLastIn字段设置为文本

我的对象的DateLastIn属性设置为NSDate

在填充我的记录对象时,我设置了一个NSDateFormatter

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);