2010-09-17 163 views
4

我有一個NSString對象,我正在NSDateFormatter的幫助下轉換到NSDate。現在,代碼在所有操作系統中都能正常工作,但它在客戶端的add(USA區域)上創建了不同的輸出。 這是我使用的代碼。NSString到NSDate轉換問題

NSDateFormatter *formate = [[[NSDateFormatter alloc] init] autorelease]; 
[formate setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 
NSString *strConcat = @"2010-09-24 17:30:00"; 
NSDate *date = [formate dateFromString:strConcat]; 
NSLog(@"Output :%@",date); 

輸出在我結束------- 2010-09-24 17:30:00 - 0700 輸出在客戶端---- 2010-09-25 00:30:00 GMT 任何人都可以請建議問題在哪裏?

感謝 PRATIK哥斯瓦米

回答

4

我注意到唯一的輸出差異是時間不同。如果您沒有明確設置格式化程序的timeZone屬性,它將使用系統的本地時區。如果您希望時間與您和您的客戶完全一樣:

[formate setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; 

這將確保輸出總是GMT。

0

您需要手動設置的區域設置爲NSDateFormatter,讓所有用戶看到相同的格式化字符串。否則,格式化程序將使用爲設備設置的任何區域設置。

0

實際上,它工作正常。這兩個日期相當,只是一個在美國/山區時區,另一個在格林威治時區。 (5:30 pm + 7 hours = 12:30 am)

這裏有什麼問題?

0

在iOS2.x和3.x描述/ datefromstring函數返回: 2010-09-24 17時30分零零秒 - 0700

在IOS 4.x的

它返回這個: 2010-09- 25 00:30:00 GMT

您可以提交一個bug給蘋果。