gpt4 book ai didi

ios - PHFetchResults 日期过滤器没有为时间范围生成正确的结果

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:03:35 26 4
gpt4 key购买 nike

我正在尝试从照片库中获取两个日期和 I am getting the images successfully. 范围内的图像使用 PHAsset 库

现在的问题是我无法在同一天的两次之间(例如中午 12:10 到中午 12:30 之间)获取图像

使用下面的代码

    NSDate *startDate = [self getDateForDay:30 andMonth:9 andYear:2016 andHour:12 andMinute:10 andSecond:0];
NSDate *endDate = [self getDateForDay:30 andMonth:9 andYear:2016 andHour:12 andMinute:30 andSecond:0];

--

-(NSDate*) getDateForDay:(NSInteger) day andMonth:(NSInteger) month andYear:(NSInteger) year andHour:(NSInteger) hour andMinute:(NSInteger) minute andSecond:(NSInteger) second{
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setDay:day];
[comps setMonth:month];
[comps setYear:year];

[comps setHour:hour];
[comps setMinute:minute];
[comps setSecond:second];
NSCalendar* gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
[gregorian setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];

NSDate *date = [gregorian dateFromComponents:comps];
return date;
}

-- 并将这些日期传递给下面的方法以获取图像

    PHFetchResult *result = [self getAssetsFromLibraryWithStartDate:startDate andEndDate:endDate];

当我在日志中打印但未获取图像时日期和时间正确

如何解决这个问题?

最佳答案

此处创建的日期将采用 UTC 时区,您的可能会有所不同。这就是谓词可能不会返回正确结果的原因。

在从日历创建日期之前,请确保已将日历的时区设置为系统时区,例如:

NSCalendar* gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
[gregorian setTimeZone: [NSTimeZone systemTimeZone]];
NSDate *date = [gregorian dateFromComponents:comps];

这将在您本地的时区创建日期并生成正确的结果。

关于ios - PHFetchResults 日期过滤器没有为时间范围生成正确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39788426/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com