ahe*_*ang 14 iphone objective-c
我有以下代码:
NSDateFormatter * df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
[df setTimeZone:[NSTimeZone systemTimeZone]];
[df setFormatterBehavior:NSDateFormatterBehaviorDefault];
[df dateFromString:@"2011-04-12 10:00:00"];
Run Code Online (Sandbox Code Playgroud)
它始终生成一个空日期.为什么是这样?
Ale*_*lex 29
如果设备设置为AM/PM时间并且请求的字符串格式设置为@"yyyy-MM-dd HH:mm:ss" dateFromString将返回nil.
如果将区域设置设置为@"en_US"转换将返回正确的日期.
dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
[dateFormat setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *date = [dateFormat dateFromString:@"2013-02-14 09:30:00"];
Run Code Online (Sandbox Code Playgroud)
Jan*_*ann 18
你是在后台线程吗?我没有在ui-thread中使用NSDateFormatter时遇到过奇怪的经历.无论如何,这是我使用的方法,应该适合你:
+ (NSDate*)parseDate:(NSString*)inStrDate format:(NSString*)inFormat {
NSDateFormatter* dtFormatter = [[NSDateFormatter alloc] init];
[dtFormatter setLocale:[NSLocale systemLocale]];
[dtFormatter setDateFormat:inFormat];
NSDate* dateOutput = [dtFormatter dateFromString:inStrDate];
[dtFormatter release];
return dateOutput;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19214 次 |
| 最近记录: |