2017-09-27 145 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的原因。 –