2017-09-27 72 views
0

我有日期(NSDate),错误NSDate从字符串转换

我转换格式为“EEEE,dd MMM YYYY”,所以输出是。 “周一,2017年5月22日”

但是,当转换这个字符串迄今为止它使用此代码

NSDateFormatter * formatter = [NSDateFormatter new]; 
[formatter setDateFormat:@"EEEE,dd MMM YYYY"]; 
    NSDate *currentDate = [formatter dateFromString:“Monday,22 May 2017”]; 

错误输出给错误的日期

是2016年12月25日18:30:00 + 0000

任何人都可以帮忙吗?

+0

日期有没有正确的格式, –

回答

2

日期有没有正确的格式,但在这里使用yyyy代替YYYY

@“YYYY”是基于周日历年。

@“yyyy”是普通日历年。

[formatter setDateFormat:@"EEEE,dd MMM yyyy"]; 

样品

NSDateFormatter * formatter = [NSDateFormatter new]; 
[formatter setDateFormat:@"EEEE,dd MMM yyyy"]; 
NSDate *currentDate = [formatter dateFromString:@"Monday,22 May 2017"]; 
+0

是问题是“YYYY”。但我无法确切确定时间而不是原始日期。 –

+0

@Rushi - 日期不会产生确切的答案,如果您再次转换为字符串,它会给出原始答案 –

+1

“但我无法计算确切的时间而不是原始日期”NSString上没有时间,所以默认情况下是午夜。但是因为我猜你在格林威治标准时间5点30分到达印度,这就解释了18点30分。 – Larme

-1

问题是在这条线[formatter setDateFormat:@"EEEE,dd MMM YYYY"];

yyyy指定日历年,而YYYY指定年份(年份)。所以你应该使用yyyy而不是YYYY。 所以你的代码会是这样

[formatter setDateFormat:@"EEEE,dd MMM yyyy"];

+0

为什么这个downvote? –

+0

我不分配downvote –

+0

我不明白在这里downvote的原因。 –