【发布时间】:2013-07-27 03:57:36
【问题描述】:
下面是我用的
NSString *myDate = @"01-11-2014 10:22 PM";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MM-yyyy hh:mm a"];
NSDate *newDate = [dateFormatter dateFromString:myDate];
NSLog(@"new date===%@=====%@", newDate, myDate);
下面是我得到的
new date===2014-11-01 19:22:00 +0000=====01-11-2014 10:22 PM
^^
我期待的输出是
new date===2014-11-01 22:22:00 +0000=====01-11-2014 10:22 PM
^^
知道出了什么问题吗?
当我有 AM 时,我有以下输出
new date===2014-11-01 07:22:00 +0000=====01-11-2014 10:22 AM
^^
编辑 1
实际上,我正在做的是在 UITextField 中询问日期和时间(可悲的是,因为客户希望它以相同的方式是真实的)...然后连接此字符串并将其转换为 NSDate。
所以我有的是
NSString myDate = [NSString stringWithFormat@"%@ %@", appDate, appTime];
【问题讨论】:
-
对我来说似乎是时区问题。您的 myDate 有时区吗?
-
@Jamie :不,它只是一个字符串..
-
这不是时区问题,是正确的。如果使用
NSLog(),日期的-description方法将用于格式化日期。它的实现使用 UTC,而不是本地时区。您使用字符串指定的日期可能是 UTC 时间 19:22。 -
对..所以你从某个已经计算了时区的地方获取时间。
-
@JoshCaswell : 谢谢你的很多很多... :D
标签: ios objective-c nsdate nsdateformatter