IOS NSDate格式不正确

时间:2013-07-26 06:39:03

标签: ios nsdate nsdateformatter

我有两个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

2 个答案:

答案 0 :(得分:2)

NSDate是日期对象对象上有 无格式 。格式来自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

答案 1 :(得分:0)

您还需要将NSString转换为NSDate;

喜欢......

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);