我有一个字符串日期“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中存储。
答案 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