2
我有一個非常惱人的問題,我的應用程序。 讓我們在名爲「daily」的表中有一個sqlite3數據庫和一個datetime列。NSDate和SQLite3
- (BOOL)eatQuantity:(NSNumber *)quantity date:(NSDate *)date
{
User *usr = [User loadCurrentUser];
BOOL ret;
sqlite3 *db;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *strDate = [dateFormatter stringFromDate:date];
[dateFormatter release];
NSString *query = [NSString stringWithFormat:@"INSERT INTO daily (id_user, id_food, quantity, date) VALUES (%d, %d, %f, '%@')", usr.idPk.intValue, self.idPk.intValue, quantity.floatValue, strDate];
NSLog(@"Query: %@", query);
當我把這個方法從一個的UIDatePicker傳遞的NSDate對象,一些用戶正面臨着的NSDate一個奇怪的行爲,他們登錄此其控制檯上:
查詢:INSERT INTO每天(id_user,id_food ,數量,日期)VALUES(1,1010,130.000000,'2011-12-21 01:20:09 m。')
但是sqlite3無法存儲日期是這樣一種格式, 「M」。串。由於WHERE子句中的空日期,用戶無法查看任何記錄。
那麼,「米」來自?這是什麼意思?我該如何解決這個問題?
+1我不知道在哪裏了'm.'是從哪裏來的,但是這可能會更好。或者,你可以明確地設置'NSDateFormatter'的語言環境來保證它會生成相同的樣式字符串,而不管用戶當前的語言環境是什麼。 – 2012-04-07 15:21:29
我需要使用NSDateFormatter,因爲我以sql的日期格式存儲日期。我現在無法改變我的數據庫的設計。我會嘗試使用nsdateformatter的語言環境。我會讓你知道它是否有效! – Progeny 2012-04-08 12:27:41