我想从两个代表时间和日期的NSDate
创建NSStrings
。
看看我的代码:
NSDateFormatter *form = [[NSDateFormatter alloc] init];
[form setDateFormat:@"hh:mm dd.MM.yyyy"];
NSDate *notDate = [form dateFromString:[@"" stringByAppendingFormat:@"%@ %@",z.time,z.date]];
NSLog(@"%@ // %@",[@"" stringByAppendingFormat:@"%@ %@",z.time,z.date],notDate);
日志告诉我这个数字:
12:00 12.05.2013 // 2013-05-11 18:00:00 +0000
在左侧 - 2个字符串,在右边 - 日期
首先得到12:00,第二次是18:00!此外,他们有不同的日子!
为什么他们不同?
答案 0 :(得分:1)
您应该使用stringFromDate函数将notDate更改为NSString。试试这个代码: -
NSDateFormatter *form = [[NSDateFormatter alloc] init];
[form setDateFormat:@"HH:mm dd.MM.yyyy"];
NSDate *notDate = [form dateFromString:[@"" stringByAppendingFormat:@"%@ %@",z.time,z.date]];
NSLog(@"notDate =====> %@",notDate);
NSLog(@"date =====> %@",[form stringFromDate:notDate]);
我希望它可以帮到你。感谢
答案 1 :(得分:0)
NSLog(@"%@ // %@",[@"" stringByAppendingFormat:@"%@ %@",z.time,z.date],notDate);
在这一行中你打印一个字符串和NSDate ..你从字符串创建一个NSDate。 NSDate隐式将您的字符串转换为NSDate格式....所以它们是不同的..
答案 2 :(得分:0)
如果你改变了
[form setDateFormat:@"hh:mm dd.MM.yyyy"];
到
[form setDateFormat:@"HH:mm dd.MM.yyyy"];
它将使用24小时格式。
NSLog(@"%@ // %@",[@"" stringByAppendingFormat:@"%@ %@",z.time,z.date],notDate);
应输出00:00 12.05.2013 // 2013-05-11 18:00:00 +0000
并解释所有内容:
如果您不手动更改它,NSDateFormatter会将您当前的区域设置考虑在内,而内部的每个NSDate对象都保存在GMT中(因此+0000
)。
根据您的个人资料,您位于彼尔姆 - 比格林威治标准时间早6小时。
所以日期是相同的,一旦用帐户中的时区打印,一旦没有。