给定一个NSDate ,给定用户的区域设置,我如何find该date的第一天。 例如,我听说有些国家星期一是星期一的第一天,有些则用星期天。 在第一种情况下,我需要返回前一个星期一,而在后一种情况下,则是前一个星期天。 无论应用的设备设置如何,我迄今所做的最大努力总是返回前一个星期日。 NSCalendar *calendar = [NSCalendar currentCalendar]; [calendar setLocale:[NSLocale currentLocale]]; NSDateComponents *components = [calendar components:NSYearForWeekOfYearCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSWeekCalendarUnit | NSWeekdayCalendarUnit fromDate:originalDate]; [components setWeekday:1]; NSDate *firstDayOfWeek = [calendar dateFromComponents:components]; 奖金的问题:在iOS上,哪个设置驱动器? 这是'地区格式'吗?
我需要得到这个月的第一天的工作日。 例如,2013年9月的第一天是星期天。
我已经在我的应用程序中创build了一个日历,用这种方式使用date对象: NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; NSDateComponents *weekdayComponents = [gregorian components:(NSDayCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSMinuteCalendarUnit)fromDate:[NSDate date]]; NSInteger day = [weekdayComponents day]; NSInteger month = [weekdayComponents month]; NSInteger year = [weekdayComponents year]; m_dateFormatter.dateFormat = @"dd/MM/yyyy"; [gregorian setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]]; NSDateComponents *timeZoneComps=[[NSDateComponents alloc] init]; [timeZoneComps setDay:day]; [timeZoneComps setMonth:month]; [timeZoneComps setYear:year]; [timeZoneComps setHour:00]; [timeZoneComps setMinute:00]; [timeZoneComps […]
我正在开发一个使用date,月份,年份的应用程序。 我想要当前的月份date,因为当前月份可以有28,29,30,31天。 我试图得到今年的几个月。 但我不知道上面的代码。 这是我的代码。 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; NSDate *today = [NSDate date]; NSCalendar *currentCalendar = [NSCalendar currentCalendar]; NSDateComponents *yearComponents = [currentCalendar components:NSYearCalendarUnit fromDate:today]; int currentYear = [yearComponents year]; for(int months = 0; months < 12; months++) { NSString *monthName = [NSString stringWithFormat:@"%@ %i",[[dateFormatter monthSymbols]objectAtIndex: months],currentYear]; NSLog(@"%@ %i",[[dateFormatter monthSymbols]objectAtIndex: months],currentYear); [monthArray addObject:monthName]; […]
我想以整数的forms获得当前的小时和分钟。 所以如果现在是上午3:16,我想得到两个整数:3和16。 但它看起来像[NSDate date]会给[NSDate date] 1970年以来的秒数,或者它可以给出一个当前时间表示的string,但是没有简单的方法将它们作为整数? 我看到在当前时间的post,但它涉及NSDateComponents和NSCalendar ? 这太复杂了……所有需要的东西都是这样的 NSDate *date = [NSDate date]; int hour = [date getHour]; // which is not possible 有没有比使用3类NSDate , NSDateComponents和NSCalendar获取当前小时作为一个整数更简单的方法,或者通常在Objective-C中,我们通常仍然使用C语言的localtime和tm来获取小时为整数?
标准框架是否支持时间差异格式并创build遵循区域设置的格式? 我知道我可以把它分解到NSDateComponents,但是我将不得不附加文本,并创build自己的不同的语言支持文件。 我想知道可能有一种方法来格式化date,并遵循区域设置简单和类似于这… dateFormat = [[[NSDateFormatter alloc] init] autorelease]; [dateFormat setDateStyle:NSDateFormatterMediumStyle] 谢谢
我有一个date,我需要拆分一些组件。 例如 let components = NSCalendarUnit.CalendarUnitDay | NSCalendarUnit.CalendarUnitHour let date = calendar.components(components, fromDate: aDate, toDate: NSDate(), options: nil) var dateToPrint = "\(date.day) days \(date.hour) hours" dateToPrint将是从aDate到现在的天数和小时数。 但是,如果我想要数周而不是几天 let components = NSCalendarUnit.CalendarUnitWeek | NSCalendarUnit.CalendarUnitHour let date = calendar.components(components, fromDate: aDate, toDate: NSDate(), options: nil) var dateToPrint = "\(date.week) weeks \(date.hour) hours" date.week不存在。 那我该如何解决呢?
我正在设置一个unit testing的特定date: NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; NSDateComponents *components = [[[NSDateComponents alloc] init] autorelease]; [components setCalendar:calendar]; [components setYear:2011]; [components setMonth:5]; [components setDay:12]; [components setHour:1]; [components setMinute:0]; [components setSecond:0]; NSDate *date = [calendar dateFromComponents:components]; NSLog(@"Date I tried to set: %@", date); 但是,这打印出“我试图设置的date:2011-05-11 17:00:00 +0000”。 date似乎有一天,我不知道为什么打印时间为17:00:00。 为什么是这样?
我已经find了解决scheme,以find特定周的星期日的date。我发现已经回答的问题,但它不显示星期天的正确date。 NSCalendar *calendar = [NSCalendar currentCalendar]; unsigned unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitWeekday | NSCalendarUnitWeekOfYear; NSDateComponents *comps = [calendar components:unitFlags fromDate:[NSDate date]]; comps.weekday = 1; //Sunday comps.weekOfMonth = 1; NSDate *sundayDate = [calendar dateFromComponents:comps]; 当我打印出它给这个date。 2015-07-08 10:14:00 +0000 它的当前date。我做错了什么?
场景: 我有一个跟踪iOS应用程序的费用,我将费用从一个费用明细视图控制器存储到一个表格视图(与提取结果控制器),显示费用列表以及类别和数量和date。 我在我的实体“钱”中有一个date属性,它是一个费用或收入的母公司。 题: 我想要的是基本上每月对我的费用进行分类,并将其显示为节标题,例如:(2012年11月1日 – 2012年11月30日),并根据当月显示费用金额和相关资料。 在这个视图中提供了两个button,如果我按下右边的button,它将使月份增加一个月(2012年12月1日 – 12月31日),同样,左边的button会使月份减less一个月。 我将如何做到这一点? 我正在尝试下面的代码 – 这是有点工作。 假设我有我目前的部分标题(2012年11月1日 – 2012年11月30日),当我按左边的button,它给了我的部分标题(2012年10月1日至10月30日)是错误的,应该是2012年10月31日而不是2012年10月30日。 – (NSDate *)firstDateOfTheMonth { self.startDate = [NSDate date]; NSCalendar* calendar = [NSCalendar currentCalendar]; [calendar setTimeZone:[NSTimeZone localTimeZone]]; NSDateComponents* components = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:self.startDate]; [components setDay:1]; firstDateOfTheMonth = [[calendar dateFromComponents:components] retain]; return firstDateOfTheMonth; } – (NSDate *)lastDateOfTheMonth { NSCalendar* calendar […]