0

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

2 回答 2

2

NSDate 是一个日期对象,对象上没有格式。格式用于从 NSDate 获取字符串值,以便我们可以以我们想要的方式呈现。无论它可能是什么格式 NSDate 保持不变

例如

输入/输出

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

输出/输出

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
于 2013-07-26T07:15:16.560 回答
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);
于 2013-07-26T06:43:03.570 回答