从NSString
转换为NSDate
的一件简单事。如何以同样的格式将Mon, 27 August 2012 01:30 AM
转换为NSDate
。我尝试了NSDateFormatter
。但我没有得到这种要求的格式。有人可以帮忙吗?这就是我的尝试。
NSDateFormatter *df=[[NSDateFormatter alloc] init];
[df setDateFormat:@"EEEE,dd MM yyyy HH:mm a"];
NSDate *date1 = [df dateFromString:@"Mon,27 August 2012 01:30 AM"];
NSLog(@"%@",date1);
答案 0 :(得分:1)
我希望这会对你有所帮助!
NSDateFormatter *dateformater=[[[NSDateFormatter alloc] init]autorelease];
[dateformater setDateFormat:@"EEEE,dd MMMM yyyy HH:mm a"];
NSDate *todayTmp=[NSDate date];
NSString *conversionDate=[dateformater stringFromDate:todayTmp];
Note : (Upper case) HH for 24h time format, (Lower case) hh for 12h time format
答案 1 :(得分:1)
NSString *myDateAsAStringValue = @"Mon, 27 August 2012 01:30 AM";
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"EEE, dd MMM yyyy HH:mm a"];
NSDate *myDate = [[NSDate alloc]init];
myDate = [df dateFromString:myDateAsAStringValue];
[df release];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm a"];
NSString *strDate = [dateFormatter stringFromDate:myDate];
NSLog(@"%@", strDate);
[dateFormatter release];
答案 2 :(得分:1)
请使用以下代码
NSDateFormatter *df=[[NSDateFormatter alloc] init];
[df setDateFormat:@"EEE,dd MMMM yyyy hh:mm a"];
NSDate *date1 = [df dateFromString:@"Mon,27 August 2012 01:30 AM"];
NSLog(@"%@",date1);
你的格式化程序错了 检查一下
答案 3 :(得分:0)
NSDateFormatter 用于指定从日期中提取字符串时将显示在日期字符串中的格式,或者在提取日期来自字符串
因此,每当您从NSString中提取NSDate时,NSDate始终以默认日期格式获取(例如 2012-08-27 00:30:00 +0000 )...仅在您提取时来自NSDate的NSString,NSString可以在NSDateFormatter中设置的所需(自定义)格式获得。
答案 4 :(得分:0)
NSLog将以固定格式返回NSDate,我猜。 如果我们需要不同格式的Date,我们应该通过NSDateFormatter格式化它并将其作为NSString。 只是一个猜测。
答案 5 :(得分:0)
不要忘记设置正确的区域设置!如果您的设备未使用英语语言环境,则NSDateFormatter可能会将Mon
和August
转换为有用信息,因为Mon不是您所用语言中星期一的正确缩写。例如在德国,星期一的正确三字母缩写为Mon.
。
如果您解析其中包含单词的日期,则必须设置正确的区域设置。
这应该有效:
NSDateFormatter *df=[[NSDateFormatter alloc] init];
[df setDateFormat:@"EEE,dd MMMM yyyy hh:mm a"];
NSLocale *posixLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
[df setLocale:posixLocale];
NSDate *date1 = [df dateFromString:@"Mon,27 August 2012 01:30 AM"];
NSLog(@"%@",date1);
EEE是工作日三个字母缩写的日期格式代码
hh是1到12之间小时的日期格式代码.HH表示0-23
MMMM是整月,MM将是该月的数值(= 08)。