如何从此字符串获取NSDate,并将此NSDate设置为long或NSTimeInterval

时间:2014-02-24 19:59:09

标签: ios objective-c nsdate nsdateformatter

我有一个字符串日期“Mar + 5,+ 2014 + 4:00:00 + AM”,我尝试转换NSDate,接下来很长(NSTimeInterval):

expireDate = @"Mar+5,+2014+4:00:00+AM";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MMM+dd,+yyyy+h:mm:ss+a"];
NSDate *dte = [dateFormat dateFromString:expireDate];

NSLog(@"%f", [dte timeIntervalSince1970]);

但是,告诉我结果:0000.0。有什么问题?请帮我。我需要这个日期,以便在db中存储。

2 个答案:

答案 0 :(得分:3)

可能需要设置区域设置,以独立于 用户的设置:

[dateFormat setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]];

答案 1 :(得分:0)

看起来您的代码有效,可能会将格式更改为%.0f,仅显示秒数 为调试添加了额外的NSLog日期。

NSString *expireDate = @"Mar+5,+2014+4:00:00+AM";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MMM+dd,+yyyy+h:mm:ss+a"];
NSDate *dte = [dateFormat dateFromString:expireDate];
NSLog(@"%@", dte);
NSLog(@"%.0f", [dte timeIntervalSince1970]);

我的时区(EST)的NSLog输出:

  

2014-03-05 09:00:00 +0000
  1394010000