gpt4 book ai didi

ios - 尝试仅将 NSDate 用于时间

转载 作者:可可西里 更新时间:2023-11-01 05:01:33 26 4
gpt4 key购买 nike

我正在努力寻找一种仅将 NSDate 用于时间用途的方法。我正在尝试执行以下代码:

- (void)awakeFromInsert
{
NSDateComponents *comps = [[NSDateComponents alloc] init];
comps.minute = 45;
comps.second = 0;

NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
self.periodDuration = [calendar dateFromComponents:comps];
NSLog(@"periodDuration: %@",self.periodDuration);

comps = [[NSDateComponents alloc] init];
comps.hour = 8;
comps.minute = 0;
self.firstPeriodStartTime = [calendar dateFromComponents:comps];
NSLog(@"firstPeriodTime: %@",self.periodDuration);
}

但我得到的结果是:

periodDuration: 0001-12-31 22:24:04 +0000
firstPeriodTime: 0001-12-31 22:24:04 +0000

我期待的结果:

periodDuration: 45:00
firstPeriodTime: 08:00

我做错了什么?我怎样才能解决这个问题?谢谢。

最佳答案

日期日志会误导您,如果您只使用少数几个组成部分组成日期,您将无法获得唯一标识日期和时间的正确日期实例。

如果您尝试截取这段代码,您会发现,如果您只是将日期转换回字符串,它就像您期望的那样

NSDateComponents *comps = [[NSDateComponents alloc] init];
comps.minute = 45;
comps.second = 0;

NSCalendar *calendar = [NSCalendar currentCalendar];
NSDate *periodDate = [calendar dateFromComponents:comps];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"mm:ss"];
NSLog(@"periodDuration: %@",[dateFormatter stringFromDate:periodDate]);

comps = [[NSDateComponents alloc] init];
comps.hour = 8;
comps.minute = 0;
NSDate *firstPeriodDate = [calendar dateFromComponents:comps];
[dateFormatter setDateFormat:@"HH:mm"];
NSLog(@"firstPeriodTime: %@",[dateFormatter stringFromDate:firstPeriodDate]);

periodDuration: 45:00

firstPeriodTime: 08:00

关于ios - 尝试仅将 NSDate 用于时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16372122/

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