2015-06-24 71 views
1

我正在使用NSDateFormatter將NSString轉換爲NSDate。NSDateFormatter不正確的日期轉換

對於e.g如果我的NSString值君24,2015然後,它是越來越轉換爲2015年6月23日18:30:00 +0000,這是不正確。

它應該是「24」而不是「23」。

我正在使用下面的代碼進行轉換。

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"MMM dd,yyyy"]; 
NSLog(@"%@",[formatter dateFromString:strDate]); 

請幫我弄清楚這個問題。

致謝NSTimeZone

回答

3

這可能會幫助你。添加下面的代碼。

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
formatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0]; 
+0

Abhishek這是工作。謝謝:) –

+0

歡迎兄弟。 :) – Abhishek

1

添加一行:

NSString *dateString = @"Jun 24,2015"; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"MMM dd,yyyy "]; 
dateFormatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0]; 
NSLog(@"%@",[dateFormatter dateFromString:dateString]); 
+0

我只使用這種格式,即@「Jun 24,2015」 –

+0

我使用的代碼與您建議的代碼沒有區別。 –

+0

看到我更新的答案,它的完美工作@ArvinderSingh –

3

NSDateFormatter取值爲本地日期甲酸(北京時間,格林尼治標準時間+5:30),然後將其轉換爲GMT。它把你的價值00:00,2015年6月24日,並將其轉換爲根據格林尼治標準時間18:30 2015年6月23日表示5小時,實際時間前30分鐘,所以只是簡單地添加

[formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]]; 

,它會工作正常。

相關問題