根据用户设置将SQL日期转换为NSDate

时间:2013-01-21 20:59:02

标签: sql nsdate nsdateformatter

我需要将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时无效。

用户设置为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 Date:(null)

相同的测试适用于iPhone设置为24H。

有什么想法解决这个问题?

0 个答案:

没有答案