2013-07-26 72 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);