[NSDate date]在模拟器上返回GMT ......它在设备上返回什么时间......?而且我怎样才能以编程方式获得模拟器时间?关于[NSDate date]的困惑
回答
它返回当前日期和时间。 NSDate与时区无关。 NSDate的-description
可能在格林威治标准时间,但不保证。
该表示不保证在操作系统的不同版本之间保持不变。要格式化一个日期,您应该使用日期格式化程序对象。
如果你想显示或在不同的时区分析日期,使用NSDateFormatter(并修改其时区/区域设置属性),或使用-descriptionWithLocale:
。
NSLocale* currentLocale = [NSLocale currentLocale]
NSLog(@"current locale = %@", [currentLocale localeIdentifier]);
NSLog(@"date = %@", [[NSDate date] descriptionWithLocale:currentLocale];
NSDate与时区无关。当您获得description
的描述时,它会显示一个时区,但这完全是“信息性”,据我所知,无法设置或访问该时区信息(description
除外)。存储在NSDate对象中的值是(应该是)GMT/UTC(尽管当然它不能告诉你是否在错误的时间喂食它)。
要获得模拟器对当前时间和日期的理解,请使用[NSDate date]
。使用NSDateFormatter格式化它(如果需要的话)。
如果我使用.. NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@“yyyy-MM-dd hh:mm:ss”]; NSString * theDate = [dateFormatter stringFromDate:[NSDate date]]; NSLog(@“the date%@”,theDate);这给我适当的价值(我目前的系统时间),即使我没有指定时区。 – 2012-01-04 12:54:29
当你这样做时,NSDateFormatter隐式地拿起当前的时区和区域设置。如果你想要不同的东西,你可以明确地设置这些东西。 – 2012-01-04 13:25:05
好的......那我怎样才能得到一个包含我系统日期的nsdate对象......? – 2012-01-04 13:32:23
- 1. Task.Factory.StartNew - 关于池的困惑
- 2. 关于MutationObserver的困惑
- 3. 关于objc_getClass的困惑
- 4. 关于DBus的困惑
- 5. 关于AverageTimer32 PerformanceCounter的困惑
- 6. 关于Thread.Join的困惑
- 7. 关于MusicService的困惑
- 8. 关于结构的困惑
- 9. 关于memset的困惑
- 10. 关于FTP的困惑
- 11. 关于Access Specifier的困惑
- 12. 关于线程的困惑
- 13. 关于Kleene星的困惑
- 14. 关于PhoneGap/Cordova的困惑
- 15. 关于MKOverlayView的困惑
- 16. 关于流的困惑
- 17. 关于GAC的困惑
- 18. 关于CTE的困惑
- 19. 关于URLMapping的困惑
- 20. 关于InetAdress.getByName()的困惑
- 21. 关于“implements Runnable”的困惑
- 22. iPhone:关于NSAutoreleasePool的困惑
- 23. 关于锁的困惑
- 24. 关于FROM_UNIXTIME的困惑
- 25. 关于回调的困惑
- 26. 关于require.js的困惑
- 27. 关于pthread_cond_wait的困惑
- 28. 关于ThreadLocal的困惑
- 29. 关于printf输出困惑
- 30. 困惑关于查询
在我的模拟器上,它正在返回GMT时间.. 12:36:33而我的模拟器的实际时间显示为6:09 pm ..:O – 2012-01-04 12:42:42
@AnkitSrivastava:你如何打印时间? – kennytm 2012-01-04 12:44:49
NSLog(@“nsdate%@”,[NSDate date]); – 2012-01-04 12:45:39