Проблемы преобразования DATETIME с использованием SQLITE3 и Objective C
У меня есть база данных sqlite3 со столбцом DATETIME, содержащим значения, отформатированные так:2013-01-09 04:00:00
я пытаюсь выяснить, как определить время - AM или PM?
Вот'Как я могу прочитать и преобразовать объекты DATETIME из моей базы данных Sqlite3 с помощью Objective-C:
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
char *DateTimeColumn = (char *)sqlite3_column_text(statement, 13);
NSDate *myDate =[dateFormat dateFromString:[NSString stringWithUTF8String:DateTimeColumn]];
Это работает очень хорошо, кроме какt выяснить, будет ли это 4:00 утра или 4:00 вечера.
Я видел сообщение, предлагающее добавитьa
в конце строки форматера примерно так:"yyyy-MM-dd hh:mm:ss a"
... чтобы выяснить AM / PM - но это вызвало сбои. (Я конечно тоже добавилAM
а такжеPM
к фактическим значениям в моем столбце DATETIME, например, так:2013-01-09 04:00:00 AM
но все равно разбился.
Не уверен, если яя делаю что-то не так - или если это просто можетэто будет сделано.
Это единственное решение, чтобы записи в самой БД были все в 24 часа. формат (значение: 16:00 следует ввести как 16:00), а затем использоватьIF
заявления вычесть 12 из значений> 12, чтобы определить времяс AM или PM 'Несс?
Я бы подумал тамБуду какой-то автоматизированной функцией для этого ... Есть идеи?
=================================
EDIT / UPDATE: Я
я вдруг получаю(ноль)' после преобразования строки в NSDate. Вот'текущая версия кода:
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
char *DateTimeColumn = (char *)sqlite3_column_text(statement, 13);
NSString *DateTimeString = [NSString stringWithUTF8String:DateTimeColumn];
NSLog(@"DateTimeString = %@", DateTimeString);
// This NSLog gives me a good string: "DateTimeString = 2013-01-09 16:00:00"
// But when I create an NSDate object from this string:
NSDate *myDate =[dateFormat dateFromString:DateTimeString];
// ... and log it out:
NSLog(@"the REAL DATETIME object = %@", [myDate description]);
// the console shows: "the REAL DATETIME object = (null)"
// and when I add this NSDate object to my Array of NSDates, I crash:
[tempNSDateObjectsArray addObject:myDate];
Console shows:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: '*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil'
*** First throw call stack: