gpt4 book ai didi

ios - 如何使用componentsSeparatedByCharactersInSet将HH:MM:SS拆分为NSArray

转载 作者:行者123 更新时间:2023-12-01 17:55:26 30 4
gpt4 key购买 nike

像这个NSString @"2013-09-02 0:00:00 +0800"一样,我可以使用componentsSeparatedByCharactersInSet方法将其拆分为NSArray。

数组看起来像这样

@["2013-09-02", "0:00:00", "+0800"].

但是如何将 NSString @"0:00:00"拆分为NSArray看起来像
@[@"0", "00", "00"] 在Objective-C中使用`
componentsSeparatedByCharactersInSet方法?

最佳答案

如果您想知道日期的小时,分​​钟和秒,则可能应该先使用NSDateFormatter,然后使用NSDateComponents提取这些属性。

NSString *yourString = @"2013-09-02 0:00:00 +0800";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"dd.MM.yyyy HH:mm:ss ZZZZ"];
NSDate *date = [dateFormatter dateFromString:yourString];

NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit fromDate:date];
NSInteger hour = components.hour;
NSInteger minute = components.minute;
NSInteger second = components.second;

//Alternative (NSArray can only contain objects - NSNumber vs. NSInteger)
NSArray *yourArray = @[[NSNumber numberWithInteger:components.hour],
[NSNumber numberWithInteger:components.minute],
[NSNumber numberWithInteger:components.second]];`

看起来似乎更多的代码,但这是更干净的解决方案。记住NSDateFormatter创建起来比较昂贵。如果可以做到这一点,则应该在循环之外创建它(尽管它不是线程安全的);

关于ios - 如何使用componentsSeparatedByCharactersInSet将HH:MM:SS拆分为NSArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18651585/

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