[NSDate date]在模拟器上返回GMT ...它在设备上什么时间返回...?还有我如何以编程方式获得模拟器时间?
答案 0 :(得分:6)
返回当前日期和时间。 NSDate与时区无关。 NSDate的-description
可能是GMT,但它不是保证。
不保证表示在操作系统的不同版本中保持不变。要格式化日期,您应该使用日期格式化程序对象。
如果要显示或解析不同时区的日期,请使用NSDateFormatter(并修改其时区/区域设置属性)或使用-descriptionWithLocale:
。
NSLocale* currentLocale = [NSLocale currentLocale]
NSLog(@"current locale = %@", [currentLocale localeIdentifier]);
NSLog(@"date = %@", [[NSDate date] descriptionWithLocale:currentLocale];
答案 1 :(得分:1)
NSDate与时区无关。当您获得description
的描述时,它会显示一个时区,但这完全是“信息性的”,据我所知,无法设置或访问该时区信息(description
除外)。存储在NSDate对象中的值是(应该是)GMT / UTC(当然,它无法判断您是否在错误的时间内输入它)。
要使模拟器了解当前时间和日期,请使用[NSDate date]
。使用NSDateFormatter格式化它(如果需要)。