2016-06-10 32 views
-1

測試零如下NSDateFormatter總是返回時,我格式化一週或一個月,爲什麼?

int main(int argc, const char * argv[]) { 
    @autoreleasepool { 
     NSDateFormatter *fmt = [[NSDateFormatter alloc] init]; 
     fmt.dateFormat = @"EEE"; 
     NSDate *createDate = [fmt dateFromString:@"Fri"]; 
     NSLog(@"%@",createDate); 
     fmt.dateFormat = @"MMM"; 
     createDate = [fmt dateFromString:@"May"]; 
     NSLog(@"%@",createDate); 
     fmt.dateFormat = @"dd HH:mm:ss Z yyyy"; 
     createDate = [fmt dateFromString:@"08 11:51:54 +0800 2016"]; 
     NSLog(@"%@",createDate); 
    } 
    return 0; 
} 

enter image description here

斯威夫特語言,是沒有問題的。

var str = "Wed Jun 08 11:51:54 +0800 2016" 

var fmt = NSDateFormatter() 
    fmt.dateFormat = "EEE MMM dd HH:mm:ss Z yyyy" 

var date = fmt.dateFromString(str); 

var str2 = fmt.stringFromDate(date!); 

enter image description here

var str = "Wed Jun" 

var fmt = NSDateFormatter() 
    fmt.dateFormat = "EEE MMM" 

var date = fmt.dateFromString(str); 

var str2 = fmt.stringFromDate(date!); 

enter image description here 我想知道爲什麼和如何處理這個問題Objective-C的 .Thanks非常感謝!

+0

不確定,但它看起來像你正試圖創建一個日期和您提供的唯一信息是一個天的名字或一個月的名字。我不相信這將是日期格式化程序創建日期的足夠信息。您的swift示例不會嘗試執行obj-c示例中發生的事情 – Evan

+2

您能否將代碼發佈到代碼塊而不是截圖?會更容易被別人複製和測試:) –

+0

感謝您的關注。我發佈了我的代碼 – eveloson

回答

0

從字符串獲取日期:

NSString *dateString = @"10-06-2016"; 
NSDateFormatter *fmt = [[NSDateFormatter alloc] init]; 
[fmt setDateFormat:@"dd-MM-yyyy"]; 
NSDate *date = [[NSDate alloc] init]; 
date = [fmt dateFromString:dateString]; 

轉換成我們所需的日期格式:

+0

是的,沒關係。但我想要格式化字符串,如「Wed Jun 08 11:51:54 +0800 2016」 – eveloson

+0

現在上面的代碼打印如:日期是2016年6月10日星期五....只需進行一些更改以添加11:51:54 +0800(你已經得到了這個)...... @ eveloson –

相關問題