【发布时间】:2014-02-06 08:53:18
【问题描述】:
我遇到了问题。当我放置断点并显示 nsdate 对象的值时,它显示正确,但是当我在 NSLog() 中打印它时,它会显示其他时间。
代码:
NSDateFormatter *f = [[NSDateFormatter alloc] init];
[f setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
[f setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];
NSDate *startDate = [f dateFromString:@"2014-01-17 15:30:00"];
NSLog(@"tim %@",startDate);
xcode中断点的图片
nslog o/p:
2014-01-17 11:27:08.348 APP[596:a0b] tim 2014-01-17 10:00:00 +0000
这是xcode的正常行为还是bug?
编辑:
我正在创建基于LocalNotification 的应用程序,所以我想将其用作全球时间,所以如果我的本地时间不同,它应该在2014-01-17 15:30:00 处触发,仅此而已。
编辑 2
根据答案和评论,请使用时区,那么 NSLocale 和 NSTimeZone 有什么区别,因为我已将 nslocal 设置为 en_US。?
如果我使用默认值,它不会让我有问题吗??我在所有国家的某个特定时间都有火灾本地通知,所以它会影响呼叫本地通知的时间吗?
【问题讨论】:
-
时区差异。 IST 是印度标准时间,即 UTC + 5:30。
-
显示的内容还可以。由于您已显示日期而未提及本地日期,因此它采用了 UTC。您可以在输出中看到它:+0000
-
如果我使用 UTC 它会同时调用所有国家??
-
在这些链接中检查我的答案 stackoverflow.com/questions/15240170/… , stackoverflow.com/questions/15086781/… 希望这会有所帮助。
-
检查更新的问题。
标签: ios iphone objective-c xcode nsdate