我如何将NSString" 01/02/10 "(意思是2010年2月1日)转换为NSDate?我怎么能把NSDate后面变成一个字符串?
我有一个包含当前日期的字符串,使用它:
NSString *date = [[NSDate date] description];
Run Code Online (Sandbox Code Playgroud)
在不同的点,我想从这个字符串中检索日期,我使用以下代码:
[NSDateFormatter setDefaultFormatterBehavior:NSDateFormatterBehavior10_4];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
//[NSDateFormatter setDefaultFormatterBehavior:NSDateFormatterBehaviorDefault];
[dateFormatter setDateFormat:@"YYYY-MM-DD HH:MM:SS ±HHMM"];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:<NSString containing date>];
Run Code Online (Sandbox Code Playgroud)
我正在dateFromString为nil为0x0.我究竟做错了什么?
我从解析XML文件得到一个字符串,如下所示:星期五,2010年4月9日00:00:45 +0200,相应的模式应该是"EEE,dd MMM yyyy HH:mm:ss ZZ",但我得到了(空值).
这是我的代码:
NSString *dateString = @"Fri, 09 Apr 2010 00:00:45 +0200";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss ZZ"];
NSDate *date = [dateFormatter dateFromString:dateString];
NSLog(@"date:%@",date); // result date:(null)
Run Code Online (Sandbox Code Playgroud)
编辑:
这对我有用,我不得不切换到en-US语言环境:
NSLocale* usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en-US"];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:usLocale];
[dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss ZZ"];
NSDate *date = [dateFormatter dateFromString:dateString];
Run Code Online (Sandbox Code Playgroud) 如何转换NSString至NSDate?
它必须是yyyy-MM-dd HH:mm:当它从NSString转换为NSDate格式时是这种格式