我有以下代码:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-mm-dd";
NSDate *cDate = [formatter dateFromString:thisLine];
NSLog(@"cDate '%@' thisLine '%@'", cDate, thisLine);
NSLog打印: cDate'2011-01-10 05:07:00 +0000'hislineLine'2011-07-10' 而cDate应该是'2011-07-10'
有什么想法吗?
由于
答案 0 :(得分:12)
小写mm
表示分钟而非月份,月份使用大写MM
:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd";
NSDate *cDate = [formatter dateFromString:thisLine];
NSLog(@"cDate '%@' thisLine '%@'", cDate, thisLine);
答案 1 :(得分:8)
NSDate
description将始终使用自己的格式打印日期,通常用于+000
时区。您需要使用日期格式来获取格式正确的日期并使用MM for month not mm。
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd";
NSDate *cDate = [formatter dateFromString:thisLine];
NSLog(@"cDate '%@' thisLine '%@'", [formatter stringFromDate:cDate], thisLine);
- (的NSString *)描述
讨论
不保证代表不予保留 在操作系统的不同版本中保持不变。格式化 日期,您应该使用日期格式化程序对象(请参阅 NSDateFormatter和数据格式指南)