我认为我以错误的方式使用NSDateFormatter。我有一个UIDatePicker。当我选择日期时,会设置我的日期标签,月份标签,年份标签和时间标签。
当我点击保存按钮时,我使用此标签建立日期并将其发送到我的服务器。 我是这样做的。
NSString *dateStringBegin = [NSString stringWithFormat:@"%@ %@ %@ %@",lblBeginDay.text,lblBeginMonth.text,lblBeginYear.text,lblBeginTime.text];
//LOG dateStringBegin = 7 februari 2013 11:21
但是我的服务器只接受一个类似于2013-02-07 11:21
现在我在代码中这样做。
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"d MMMM YYYY hh:mm"];
NSDate* date = [dateFormat dateFromString:dateStringBegin];
NSDateFormatter *dateFormat2 = [[NSDateFormatter alloc] init];
[dateFormat2 setDateFormat:@"YYYY-MM-dd HH:mm"];
NSString *dateStringBegin2 = [dateFormat2 stringFromDate:date];
现在,当我看看dateStringBegin2的样子时,我看到了这一点。
//LOG dateStringBegin2 = 2013-12-28 11:21
答案 0 :(得分:0)
更改:
[dateFormat setDateFormat:@"d MMMM YYYY hh:mm"];
[dateFormat2 setDateFormat:@"YYYY-MM-dd HH:mm"];
致:
[dateFormat setDateFormat:@"d MMMM yyyy hh:mm"];
[dateFormat2 setDateFormat:@"yyyy-MM-dd HH:mm"];
问题在于,yyyy用于指定年份组件。使用YYYY是一个常见的错误。 yyyy指定日历年,而YYYY指定ISO年度日历中使用的年份(“年度周”)。在大多数情况下,yyyy和YYYY会产生相同的数字,但它们可能会有所不同。通常,您应该使用日历年。
答案 1 :(得分:0)
检查此代码: -
NSString *dateStringBegin = @"7 february 2013 11:21";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"dd MMMM yyyy hh:mm"];
NSDate* date = [dateFormat dateFromString:dateStringBegin];
NSDateFormatter *dateFormat2 = [[NSDateFormatter alloc] init];
[dateFormat2 setDateFormat:@"yyyy-MM-dd HH:mm"];
NSString *dateStringBegin2 = [dateFormat2 stringFromDate:date];
NSLog(@"Date : %@",dateStringBegin2);
希望它可以帮助你..
答案 2 :(得分:0)
将日期格式更改为
[dateFormat2 setDateFormat:@"yyyy-MM-dd HH:mm"];