我需要将 SQL 日期(来自 SQLite 请求)转换为 NSDate。
我有一个类别:
- (NSDate*)dateWithSQLString
{
if (sqlDateFormatter == nil)
{
[NSDateFormatter setDefaultFormatterBehavior:NSDateFormatterBehavior10_4];
sqlDateFormatter = [[NSDateFormatter alloc] init];
[sqlDateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
[sqlDateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
}
return [sqlDateFormatter dateFromString:self];
}
如果用户设置是 24 小时,这很有效,但它不适用于 iPhone 上的上午/下午设置。
用户设置为 AM/PM(其他国际设置为法语)的简单测试:
FMResultSet *dbRows = [self.database executeQuery:@"SELECT pulled_at FROM countries WHERE id = '1'"];
[dbRows next];
NSString *pulled_at = [dbRows stringForColumn:@"pulled_at"];
NSLog(@"SQL String : %@", pulled_at);
NSDate *sqlDate = [pulled_at dateWithSQLString];
NSLog(@"SQL Date : %@", sqlDate);
[2906:907] SQL 字符串:2012-01-01 00:00:00
[2906:907] SQL 日期:(空)
对于设置为 24H 的 iPhone,同样的测试是可以的。
有什么想法可以解决此问题吗?