我让用户在UITextField中输入日期。当我格式化字符串并将其输出到NSLog语句中时,我得到的日期值不正确。例如,当我在文本字段中输入11-16-2011 11:43时,我在日志中得到2010-12-26 16:43:00 +0000。我的代码如下:
NSString *dateString = dateTextField.text;
//create a NSDateFormatter that can be used to create a NSDate from the string
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MM-dd-YYYY hh:mm"];
[formatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:-18000]];
//create a NSDate from the string using our formatter
NSDate *alertTime = [formatter dateFromString:dateString];
NSLog(@"dateString is %@", alertTime);
[formatter release];
谢谢!
答案 0 :(得分:2)
一周前,我发生了类似的事情。经过一番挖掘后,我不得不将格式从几个小写字符更改为大写字母。
不确定这是否有效,但尝试更改
[formatter setDateFormat:@"MM-dd-YYYY hh:mm"];
到此:
[formatter setDateFormat:@"MM-dd-yyyy HH:mm"];
P.S ...如果您开始接受有助于您的答案,您可能会获得更多答案。 :)强>
答案 1 :(得分:1)
它使用yyyy来指定年份组件。常见的错误是使用 YYYY。 yyyy指定日历年,而YYYY指定年份 (“年度周”),用于ISO年 - 周历。多数情况 案例,yyyy和YYYY产生相同的数字,但它们可能是 不同。通常,您应该使用日历年。
此外:
h小时[1-12]。
H小时[0-23]。
答案 2 :(得分:0)
Louie的回答是正确的 - 但考虑使用UIDatePicker代替用户日期输入。