Я делюсь здесь только основными моментами, касающимися форматирования даты для сохранения и извлечения данных для представления. Если у вас возникнут проблемы с этим фрагментом кода, я поделюсь полным кодом, который я использовал для своего проекта.
Когда вы сохраняете свои данные, привязывайте значение даты в выражении sql следующим образом:
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *dateString=[dateFormat stringFromDate:[NSDate date]];
sqlite3_bind_text(saveStmt, 1, [dateString UTF8String] , -1, SQLITE_TRANSIENT);
и когда вы получаете данные, вы должны написать этот код:
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *myDate =[dateFormat dateFromString:[NSString stringWithUTF8String:(char *)sqlite3_column_text(selectstmt, 1)]];
теперь у вас есть переменная myDate типа NSDate, которую вы можете отобразить по-своему:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd-MM-yyyy hh:mm:ss a"];
NSLog(@"My Date was : %@", [formatter stringFromDate:myDate]);
Вы должны помнить три вещи:
- В вашем поле даты типа SQLite должно быть DATETIME
- Формат даты должен быть одинаковым при хранении и при извлечении
- Теперь вы можете показывать по-своему, но следуя формату. Ниже приведены подробности формата.
Формат:
'dd' = Day 01-31
'MM' = Month 01-12
'yyyy' = Year 2000
'HH' = Hour in 24 hour
'hh' = Hour in 12 hour
'mm' = Minute 00-59
'ss' = Second 00-59
'a' = AM / PM