草庐IT

NSCalendar

全部标签

ios - [NSCFString timeIntervalSinceReferenceDate] : unrecognized selector sent to instance

我想比较两个日期之间的差异,但是使用下面的代码我得到了错误“[NSCFStringtimeIntervalSinceReferenceDate]:无法识别的选择器发送到实例。”代码有什么问题?NSDate*dateAdded=[eventDictionaryobjectForKey:@"dateAdded"];NSDate*validUntilDate=[eventDictionaryobjectForKey:@"validUntilDate"];NSDateComponents*sometimeAgo=[[NSCalendarcurrentCalendar]components:(N

iOS 从当前日期起一个月。

我想从当前日期算起一个月。下面是我所拥有的,它正在返回:4027-09-2416:59:00+0000。当前日期是正确的。这是怎么回事?//GettodaysdatetosetthemonthlysubscriptionexpirationdateNSDate*currentDate=[NSDatedate];NSLog(@"CurrentDate=%@",currentDate);NSDateComponents*dateComponents=[[NSCalendarcurrentCalendar]components:NSMonthCalendarUnit|NSDayCalenda

ios - 将 NSDate 格式化为 DDMMYYYY?

我必须从日期发送DDMMYYY日期才能与API通信。NSDateComponents*日期组件;NSCalendar*公历;NSDate*日期;gregorian=[[NSCalendaralloc]initWithCalendarIdentifier:NSGregorianCalendar];dateComponents=[[NSDateComponentsalloc]init];self.date=[gregoriandateByAddingComponents:dateComponentstoDate:[NSDatedate]options:0];我必须使用[dateCompon

ios - 获取当前季度的第一个日期

我正在尝试获取当前季度的第一个和最后一个日期,我正在使用它:NSDateComponents*components=[[NSCalendarcurrentCalendar]components:NSCalendarUnitQuarter|NSCalendarUnitDay|NSCalendarUnitMonth|NSCalendarUnitYearfromDate:[NSDatedate]];components.quarter=1;funStartDate=[[NSCalendarcurrentCalendar]dateFromComponents:components];NSLog

objective-c - 存储绝对 NSDate,而不是相对于时区

我正在创建一个iOS应用程序来跟踪出勤情况。每个考勤条目都存储在一个对象中,该对象具有一个状态属性(例如出席、缺席)和一个名为date的NSDate属性,该属性表示考勤记录的日期。当我选择一个特定日期(使用UIDatePickerView或类似工具)时,我希望该日期的所有出勤记录(对象)都显示在表格View中。虽然这在原则上听起来很简单,但我遇到了与时区相关的问题。我知道NSDate的存储独立于时区(即它们相对于UTC/GMT+0000存储)。这意味着,如果我在悉尼并参加了例如2012年11月4日星期日的考勤,因为该日期存储为独立于时区的,如果我将我的iPhone/iPad带到不同的时

iphone - 在 iOS 中将 NSdate 舍入到最近的小时

我有格式的数据时间:13:52、10:30、11:48等等我想四舍五入到最近的小时。例如13:52->14:00、10:30->11:00和11:48->12:00。我如何使用NSDate做到这一点? 最佳答案 这是一个Swift3.0实现,它使用Date扩展获取最近的小时数:extensionDate{funcnearestHour()->Date?{varcomponents=NSCalendar.current.dateComponents([.minute],from:self)letminute=components.mi

ios - 创建具有特定时间的 NSDate

我有以下问题。我需要从特定时间创建一个NSDate对象。在给定的时区(有时是CST、EST等),今天的时间是下午6点。不是每天下午6点,而是今天在该特定时区的下午6点。我正在考虑使用NSCalendar对象来创建特定的日期/时间,但问题是它需要日、月和年。那么当我没有正确的日期时如何设置这些值。示例:今天是2014年1月28日,中部时间11:09。现在,如果我需要创建一个NSCalendar对象,我将需要日、月和年。我不能使用NSDate对象的日、月和年计算,因为它会导致边缘情况出现问题。谁能指出我正确的方向? 最佳答案 试用NSD

ios - NSDate 的 timeIntervalSinceDate 的差异(_ :) and NSCalendar's components(_:fromDate:toDate:options:)

除了函数的输入和输出,NSDate的有什么不同functimeIntervalSinceDate(anotherDate:NSDate)->NSTimeInterval和NSCalendar的funccomponents(unitFlags:NSCalendarUnit,fromDatestartingDate:NSDate,toDateresultDate:NSDate,optionsopts:NSCalendarOptions)->NSDateComponents?哪个函数更精确?哪些函数考虑了夏令时、闰秒等?例如:lettoday=NSDate()letsomeDate=Rand

swift - NSCalendar.startOfDayForDate(日期 :) equivalent for iOS 7 with non-optional return type

是否可以更改NSDate对象,使结果等同于NSCalendar.startOfDayForDate(date:)?该方法仅适用于iOS8及更高版本,但我正在寻找适用于iOS7的方法。我看过两种方法:NSCalendar.dateFromComponents(comps:)如下所述:NSDatebeginningofdayandendofday.例如,像这样:classfuncstartOfDay(date:NSDate,calendar:NSCalendar)->NSDate{if#available(iOS8,*){returncalendar.startOfDayForDate(d

swift - 如何在日历中使用 NSCalendar 范围函数?

我有以下代码在Swift2中使用编译但在Swift4.2中不会。返回bool值的范围函数不再是日历数据类型的一部分,而是NSCalendar数据类型的一部分。有没有一种方法可以使用或格式化此函数以使其在Swift4.2中编译?extensionCalendar{/**Returnsatuplecontainingthestartandenddatesfortheweekthatthespecifieddatefallsin.*/funcweekDatesForDate(date:NSDate)->(start:NSDate,end:NSDate){varinterval:TimeInt