2013-07-26 73 views
0

我有兩個NSDate的對象IOS的​​NSDate沒有正確格式化

一個以這種格式

yyyy:MM:dd HH:mm:ss

另一種是在

yyyy-MM-dd HH:mm:ss

有什麼區別他們?

我也嘗試將第二種格式轉換爲第一種格式,但由於某種原因,我可以將其轉換爲正確的NSString,但不在NSDate中,NSDate總是顯示爲yyyy-MM-dd,我無法找到理由。

這裏是代碼我沒有轉換爲 - 至:

//photo date has this date 2013-07-21 18:02:13 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 
NSString *dateString = [dateFormatter stringFromDate:photoDate]; 
dateString = [dateString stringByReplacingOccurrencesOfString:@"-" withString:@":"]; 
NSDateFormatter *converter = [[NSDateFormatter alloc] init]; 
[converter setDateFormat:@"yyyy:MM:dd HH:mm:ss"]; 
NSDate * newPhotoDate = [converter dateFromString:dateString]; 
// newPhotoDate still has it in 2013-07-21 18:02:13 but dateString actually is in 2013:07:21 18:02:13 
+0

請提供一些代碼。 – Paul

+4

NSDate是一個數字。它沒有格式。 – Sulthan

+0

如果我做nslog我看到2013-07-21 18:02:13和2013:07:21 18:02:13 –

回答

2

NSDate的是Date對象在object.Formats無格式來從NSDate的獲取字符串值,以便我們可以呈現我們想要什麼方式。有什麼格式可能是NSDate保持不變

例如

I/P

NSDate *date=[NSDate date]; 
NSLog(@"%@",date); 

NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
[df setDateFormat:@"dd-MM-yyyy"]; 
NSString *dateString =[df stringFromDate:date]; 
NSLog(@"%@",dateString); 


[df setDateFormat:@"dd:MM:yyyy"]; 
dateString =[df stringFromDate:date]; 
NSLog(@"%@",dateString); 

O/P

2013-07-26 12:47:08.727 Trial[4191:11303] 2013-07-26 07:17:08 +0000 
2013-07-26 12:47:08.728 Trial[4191:11303] 26-07-2013 
2013-07-26 12:47:08.731 Trial[4191:11303] 26:07:2013 
0

您還需要轉換NSStringNSDate;

諸如此類..

NSString *dateString = @"2013-7-12 12:22:51"; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 
dateFormatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0]; 
NSDate *dateFromString = [[NSDate alloc] init]; 

NSDate *date = [dateFormatter dateFromString:dateString]; 
NSLog(@"Date : %@", date);