日志中的日期/时间不正确

时间:2011-11-16 16:44:45

标签: iphone objective-c

我让用户在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];

谢谢!

3 个答案:

答案 0 :(得分:2)

一周前,我发生了类似的事情。经过一番挖掘后,我不得不将格式从几个小写字符更改为大写字母。

不确定这是否有效,但尝试更改

[formatter setDateFormat:@"MM-dd-YYYY hh:mm"];

到此:

[formatter setDateFormat:@"MM-dd-yyyy HH:mm"];

P.S ...如果您开始接受有助于您的答案,您可能会获得更多答案。 :)

答案 1 :(得分:1)

使用yyyy一年。来自文档http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/DataFormatting/Articles/dfDateFormatting10_4.html#//apple_ref/doc/uid/TP40002369-SW1

  

它使用yyyy来指定年份组件。常见的错误是使用   YYYY。 yyyy指定日历年,而YYYY指定年份   (“年度周”),用于ISO年 - 周历。多数情况   案例,yyyy和YYYY产生相同的数字,但它们可能是   不同。通常,您应该使用日历年。

此外:

h小时[1-12]。

H小时[0-23]。

答案 2 :(得分:0)

Louie的回答是正确的 - 但考虑使用UIDatePicker代替用户日期输入。