2015-05-27 35 views
0

我GOOGLE了很多次,但我不滿意給出的答案。請任何人都可以給我正確的答案,我需要。如何轉換字符串日期到iOS中的NSDate

這是從數據庫取回日期字符串:2015年5月27日10:19(YYYY-MM-DD HH:MM) 我想轉換成NSDate

我的代碼是象下面這樣:

NSString *date_str = @"2015-05-27 10:19"; 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm"]; 
NSDate *date = [dateFormat dateFromString:date_str]; 
NSLog(@"date == %@",date); 

但輸出是:日期== 2015年5月27日4時49分00秒+0000

其顯示4時49分00秒時間,但我的檢索時間是10:19

如何從數據庫中檢索完美時間。

請大家幫幫忙我..

+0

也許這是區域設置的問題。請嘗試添加它像[這裏](http://stackoverflow.com/questions/18964747/nsdateformatter-locale) – Jens

+0

可能沒有NSTimeZone [http://stackoverflow.com/a/28644052/3177007]鏈接可以幫助你。 .. –

回答

1

你的約會只是轉換爲GMT時間是這樣的: -

NSString *date_str = @"2015-05-27 10:19"; 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"]; 
[dateFormat setTimeZone:gmt]; 
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm"]; 
NSDate *date = [dateFormat dateFromString:date_str]; 

而且輸出是: -

date == 2015-05-27 10:19:00 +0000 

並以獲得日期+0000,你可以直接將其存儲在的NSString: -

NSString *s = [dateFormat stringFromDate:date]; 

輸出: -

2015-05-27 10:19 
+0

不錯。其工作正常:)。但是,如果我想刪除該+0000? –

+0

@SRNayak它的NSDate對象描述合成並保存到你的數據庫,每當你想從你的NSDate對象的特定格式,再次使用NSDateFormatter! – Retro

+0

更新了答案@SRNayak – Vizllx

1

你正面臨着轉換時區的問題,因爲服務器時間和本地時區可能有差異。因此,處理此問題需要將時區設置爲dateformatter,例如

[dateFormater setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]]; 
+0

謝謝Dude ... :) –