如何在iPhone上获取系统日期

时间:2012-01-20 08:52:00

标签: iphone objective-c ios nsdate

NSDate * now = [NSDate date];

我提前一小时得到这个日期。可能是因为它使用UTC 如何获得系统当前日期?

2 个答案:

答案 0 :(得分:3)

[NSDate date]返回当前日期。但是,NSDate没有自己的时区,只是一个绝对的时间点。当您将日期显示为字符串或将其转换为日期组件(如日,月,小时等)时,时区才会发挥作用。

使用NSDateFormatter获取当前时区中日期的字符串表示形式,或使用日期格式化程序上的setTimeZone:指定其他时间段。如果您只使用NSLog,则日期将以UTC时区显示(通过隐式调用日期对象上的description)。

使用NSCalendar方法components:fromDate:从您的日期中提取单个组件(具有给定时区)进行典型比较,例如“这两个日期是否属于此时区的同一天?”。

答案 1 :(得分:0)

您需要设置系统GMT时间和日期可能会对您有所帮助。