NSDate * now = [NSDate date];
我提前一小时得到这个日期。可能是因为它使用UTC 如何获得系统当前日期?
答案 0 :(得分:3)
[NSDate date]
返回当前日期。但是,NSDate
没有自己的时区,只是一个绝对的时间点。当您将日期显示为字符串或将其转换为日期组件(如日,月,小时等)时,时区才会发挥作用。
使用NSDateFormatter
获取当前时区中日期的字符串表示形式,或使用日期格式化程序上的setTimeZone:
指定其他时间段。如果您只使用NSLog
,则日期将以UTC时区显示(通过隐式调用日期对象上的description
)。
使用NSCalendar
方法components:fromDate:
从您的日期中提取单个组件(具有给定时区)进行典型比较,例如“这两个日期是否属于此时区的同一天?”。
答案 1 :(得分:0)
您需要设置系统GMT时间和日期可能会对您有所帮助。