2012-08-09 36 views
1

我有一個包含日期的mysql中的varchar。我一直試圖將其轉換爲NSDate,但沒有任何我已經嘗試過的作品。從MySQL NSString看起來是這樣的:將轉換日期從MySQL到NSDate

2012年8月11日,上午10:17

到目前爲止有關NSStringNSDate轉換的所有職位都沒有制定該字符串。如果有人可以請幫助...

回答

2

我假設你使用JSON用於從MySQL(服務器)中獲取數據並調用myJSONObject

JSON對象

NOTE:myJSONObject必須使用一些框架序列化像NSJSONSerialization

編輯與一些詳細的問題鏈接

你問到的數據2012年8月11日轉換爲,上午10:17但我的示例代碼試圖轉換爲2012-08-11 10:17:..,我編輯我的示例代碼給你。如需更多信息,看看NSDateFormatter

敬請關注:您可以使用NSDateComponents得到變量month_from_date。有一些關於它的問題herehere ..如果你不能,請打開一個新帖子。

NSString* dateString = [myJSONObject objectForKey:@"date"]; 

      NSDateFormatter* fmt = [NSDateFormatter new]; 
      [fmt setTimeZone:[NSTimeZone defaultTimeZone]]; 
      // [fmt setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 
      [fmt setDateFormat:@"%@ DD,YYYY, HH:mm",month_from_date]; 
      NSDate* dateFromString = [fmt dateFromString:dateString]; 
NSLog("Here is date from string: %@",dateFromString); 
+0

感謝您的回覆。我解析json類似於你發佈的方式。然而,我放入代碼並仍然得到null。這可能是dateformat是錯誤的 - 再次,2012年8月3日星期五,上午11:20 - 是需要轉換的。 – 2012-08-09 21:52:54

+0

@DanielShaffer請參閱我的編輯 – ilhnctn 2012-08-10 07:38:03

2

NSString轉換爲NSDate,請使用NSDateFormatter

NSString *_dateString = @"August 11, 2012, 10:17 AM"; 
NSDateFormatter *_dateFormatter = [[NSDateFormatter alloc] init]; 
[_dateFormatter setDateFormat:@"MMMM dd, yyyy, HH:mm a"]; 
NSDate *_date = [_dateFormatter dateFromString:_dateString]; 
NSLog(@"raw date : %@", _date); 
NSLog(@"formatted date : %@", [_dateFormatter stringFromDate:_date]); 

輸出NSDate將包含日期:

raw date : 2012-08-10 23:17:00 +0000 
formatted date : August 11, 2012, 11:17 AM 

可以格式化NSDate,只要你願意爲一個不同的輸出,它是由現在登記,但你可以工作NSDate包含日期的對象。

注:我們不知道從輸入日期的時區時,我們使用的是默認其轉換它,所以NSDate。如果您設置當前時區,轉換後您將獲得正確的日期。

+0

,但他想要8月不是08例如 – ilhnctn 2012-08-10 08:07:16

+0

他寫道_input_字符串是'2012年8月11日,上午10點17分',他喜歡轉換成'NSDate'作爲_output_。我誤解了什麼? – holex 2012-08-10 08:10:34

+0

你的輸出會給08年,2012年,但他希望2012年8月。不重要的一點,但必須有一些枚舉。我的答案解釋了一點點 – ilhnctn 2012-08-10 08:56:11