我有一个代码片段,它需要一个日期并尝试将其转换为没有时间组件的日期。然后我使用这些修剪后的数据来保存/获取核心数据。
-(NSDate*)dateWithNoTimeComponents:(NSDate*)startDate
{
//
NSCalendar *calendar = [NSCalendar currentCalendar];
NSNumber* count = 0;
int secondsPerDay = 86400;
//break the date and create fractional components for that date
NSDateComponents *components = [calendar components:(NSWeekdayCalendarUnit| NSHourCalendarUnit | NSMinuteCalendarUnit|NSSecondCalendarUnit) fromDate:startDate];
NSInteger hour = [components hour];
NSInteger minute = [components minute];
NSInteger second = [components second];
//update daily count
//remove fractional componets from the date, effectively creating a key per day
return [NSDate dateWithTimeInterval:-((hour*60+minute)*60+second) sinceDate:startDate];
}
我担心这可能不适用于来自不同时区的日期。将来自不同时间戳的日期影响此方法吗?例如,如果我在 GMT -5 时区,然后进入 GMT -8 时区,这种方法生成的修剪日期是否仍然正确? 我是否需要在此计算中的某处包括时区偏移/夏令时以使其全局正确?