草庐IT

objective-c - 从 NSString : How to ignore the timezone 转换为 NSDate

我正在使用以下代码将日期格式为2012-06-30的NSString转换为NSDate:NSDateFormatter*dateFormatter=[[NSDateFormatteralloc]init];[dateFormattersetDateFormat:@"yyyy-MM-dd"];NSDate*date=[dateFormatterdateFromString:dateString];当省略[dateFormattersetTimeZone:[NSTimeZonetimeZoneForSecondsFromGMT:0]]时,NSString中的值为2012-06-2923:0

ios - NsDate 格式化程序从字符串中给出错误的日期

这个问题在这里已经有了答案:NSDateFormatoutputtingwrongdate(5个答案)关闭9年前。我有以下代码,它接受一个NSString并返回NSDate。我从一个项目中复制了这段代码,它在其中运行得非常好——但是这给了我错误的输出-(NSDate*)dateFromString:(NSString*)date{staticNSDateFormatter*dateFormatter;if(!dateFormatter){dateFormatter=[[NSDateFormatteralloc]init];[dateFormattersetDateFormat:@"dd

ios - NSDate 返回一个负的 NSTimeInterval

我有以下代码:-(void)pointsStartedDisplaying{staticdispatch_once_tonceToken;dispatch_once(&onceToken,^{dispatch_async(dispatch_get_main_queue(),^{self.timeStartedDisplayingPoint=[NSDatedate];self.stopButton.enabled=YES;[NSTimerscheduledTimerWithTimeInterval:1.0target:selfselector:@selector(updateElapse

ios - 我怎样才能改进这个涉及 NSDate 比较的实现?

我是acalendarlibraryforiOS的作者,我正在考虑如何改进它,因为很明显人们不理解它。现在,我有一个只包含一个方法的数据源协议(protocol),它返回要在给定日期显示的事件:-(NSArray*)calendarView:(CKCalendarView*)calendarVieweventsForDate:(NSDate*)date;但是,我发现在图书馆可用的两年里,我收到的大部分反馈都是“如何让事件出现在日历上?”我一直认为它很直观:创建一些事件。该框架有一个“事件”对象可以使用。在某些数据源(如字典或核心数据)中按日期对事件进行排序。在数据源中返回适当的事件对象

ios - 将 NSDate 转换为整数

所以我的困境是我无法弄清楚如何仅将日期存储在整数值中(获取使用:NSDate*date=[NSDatedate]我在网上找到了这段代码,它看起来与我需要的相似(我认为将setDateFormat更改为@"dd"会起作用(但显然没有)NSDateFormatter*formatter=[[NSDateFormatteralloc]init];[formattersetDateFormat:@"yyyy"];//Optionallyfortimezoneconversions[formattersetTimeZone:[NSTimeZonetimeZoneWithName:@"..."]]

ios - 将 UTC 字符串转换为 NSDate

服务器以UTC格式返回日期时间字符串:2015-04-21T00:54:46.469Z我正在尝试将其转换为NSDate。代码是:NSString*dateString=@"2015-04-21T00:54:46.469Z";NSDateFormatter*dateFormatter=[[NSDateFormatteralloc]init];[dateFormattersetDateFormat:@"yyyy-mm-DDThh:mm:ss.sZ"];NSDate*locationDate=[dateFormatterdateFromString:dateString];执行后locati

ios - NSDate 比今天旧

我了解如何比较两个NSDate对象,例如:if([olderDatecompare:[NSDatedate]]==NSOrderedAscending){//dosomething}但是我只想比较日期组件,而不是时间,因为在我的情况下时间会使比较不准确。是否可以只比较日月年? 最佳答案 从iOS8开始,NSCalendar有很多方便的方法来进行这种比较。例如,有:-(NSDate*)startOfDayForDate:(NSDate*)dateNS_AVAILABLE(10_9,8_0);您可以从某个日期(例如[NSDatedate

objective-c - NSDate 的 dateWithTimeIntervalSinceNow 中的负 NSTimeInterval :

FromtheiOSdocs:secondsThenumberofsecondsfromthecurrentdateandtimeforthenewdate.Useanegativevaluetospecifyadatebeforethecurrentdate.但是这段代码给出的日期是2148年:#import#importintmain(intargc,constchar*argv[]){@autoreleasepool{for(inti=0;i它应该生成最近的半随机日期和时间。 最佳答案 正如HotLicks所说,这是由于在使数

ios - NSDate dateFromString 在设备语言更改时返回 nil

我编写了一个简单的函数来从NSString返回NSDate。但它总是返回零。场景是:设备语言为英文,功能正常。设备语言为阿拉伯语,函数返回nil。NSString值为“03:43PM”。但是,如果日期格式为阿拉伯语,即“٠٩:٥٦ص”。它返回正确的日期。有什么想法吗?代码:-(NSDate*)GetTime:(NSString*)txt{NSDateFormatter*df=[[NSDateFormatteralloc]init];[dfsetDateFormat:@"hh:mma"];return[dfdateFromString:txt];} 最佳答案

ios - 更改 NSDate 工作日和月份的语言

我想显示这样的日期:第7个月的工作日。我这样做了,而且语法正确。NSDateFormatter*df=[[NSDateFormatteralloc]init];[dfsetDateFormat:@"EEEEddMMMM"];[dfsetTimeZone:[NSTimeZonelocalTimeZone]];记录的结果是:3月16日星期六。我只想约会法国人,而不是英国人。我尝试设置本地时区,但没有任何改变。您知道如何执行此操作吗? 最佳答案 使用标识符初始化语言环境。您可以从中获取所有可用的标识符[NSLocaleavailableL