Tag: nsdate

从unix时间戳获取人类可读的相对时间和date?

从一个像1290529723这样的unix时间戳开始,我将如何(假设gmt)获取关于它是否是的信息: 今天(如果是,什么时间) 在过去的七天(如果是这样的话,哪一天……周一,周二等)? 超过一周(如果是这样,如何以dd / mm / yy格式输出?) 我需要这个消息的列表像iPhone的邮件应用程序,其中date/时间显示相对于当前date和时间,如下所示: 15:45 Yesterday Sunday Saturday 10/10/10 等等

将NSDictionary键sorting为NSDate

我正在开发一个最新的SDK和XCode 4.2的iOS 4应用程序。 我有一个NSMutableDictionary其中键是NSDate和值是NSMutableString 。 当我填补了NSMutableDictionary我想sorting它的键,但我不知道我该怎么做。 我想要一月份的第一个date,然后是二月份,等等。 NSDate密钥格式是dd / mm / yyyy 。 当NSMutableDictionary具有所有的键和值时,如何sorting这些键? (我不会添加更多)。

设置NSDateComponents导致不正确的NSDate

我试图得到一个NSDate对象有当地时间21:00 – 不在乎哪一天。 我抓着这个非常奇怪的结果: NSCalendar *calendar = [[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar]; NSDateComponents *components = [[NSDateComponents alloc] init]; [components setHour:21]; [components setMinute:0]; [components setSecond:0]; NSDate *date = [calendar dateFromComponents:components]; NSLog(@"%@", date); 结果是0001-01-02 04:52:58 +0000 我不知道为什么。 目前的时间是太平洋时间17:34,但结果并不随当地时间而改变。 如果我调整setMinute和setSecond线来 [components setMinute:7]; [components setSecond:2]; 我得到0001-01-02 05:00:00 +0000 ,这是正确的(21:00 PST)。

如果设备date和时间不准确,我怎样才能得到实际的date和时间?

我注意到,如果手动设置我的设备时间,并closures我的iOS设备上的自动时间同步, [NSDate date]返回date和时间假设设备时间是正确的 – 它可能不是。 由于文档提到NSDate与NTP有某种同步,我想知道是否有任何内置的方法来获取准确的date和时间,而不是不得不假设设备的date和时间是正确的。

将NSDate转换为mm / dd / yyyy

我知道这个问题与其他人问的类似,但是我找不到我的代码出错的地方。 我正在尝试将当前date转换为mm / dd / yyyy格式。 这是我正在使用的: NSDate *date = [[NSDate alloc]init]; NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease]; [formatter setDateFormat:@"mm/dd/yyyy"]; NSLog(@"%@", [formatter stringFromDate:date]); 问题是这个月。 每次我运行这个代码,这个月都不一样了。 例如,我第一次约会的时间是2012年11月32日,而我刚刚运行它,这是55/11/2012。 这有什么原因会改变吗? 这几天和几年似乎很好。 谢谢。

如何将服务器响应date转换为本地时区?

在API调用响应中,我得到不同时区的date。 我想将其转换为用户的本地时区,用户可以从ios时区列表中select任何时区。 这都是本地的。 我们永远不会发送选定的用户时区到服务器。 同时使任何API调用可以说我正在select器中创build一个事件与选定的开始date。 我应该发送全球时区不与用户select的时区,因为它是本地的应用程序。 目前我正在改变select的defaultTimeZone,以便我得到适当的当前date等。并使用setTimeZone NSDateFormatter … [NSTimeZone timeZoneWithName … 这是一个更好的方法来改变应用程序的所有本地的defaultTimeZone? 在将NSdate发送到服务器时,我应该如何将NSdate转换回全局date?

将NSDate设置为24 – 12小时xcode格式的“TimePicker”

我正在使用一些NSDate对象,而且,我用我的iPhone 24小时的格式,所以当我testing我的应用程序,一切都很顺利,但是,我的一个朋友尝试了他的iPhone上的应用程序,但他用了12小时格式,经过一些研究,我发现问题是date,我不知道为什么我使用这个设置dateselect器和时间select器,所以我从数据库中读取一些值(是的,我已经检查了值,它们是正确的,这不是一个价值问题),所以所有这些数据被格式化,并作为一个NSDate放在一起,然后,我设置dateselect器和时间select器与我刚刚创build的date NSDateFormatter *currentDate = [[[NSDateFormatter alloc] init] autorelease]; [currentDate setDateFormat:@"yyyy-MM-dd HH:mm"]; NSDate * startDate =[currentDate dateFromString:[NSString stringWithFormat:@"%d-%d-%d %d:%d",yearVal,monthVal,dayVal,hourVal,minVal]]; [datePicker setDate:startDate]; [timePicker setDate:startDate]; 所以,yearVal,monthVal,dayVal,hourVal,minVal都是NSIntegers …事情就是,如果你的iPhone / iPod在你的时钟设置中使用了24小时,那么它是完美的,但是如果你使用12小时制,它崩溃并显示此错误消息 > *** Assertion failure in -[UIDatePickerView _updateBitsForDate:forced:andReload:animateIfNeeded:], /SourceCache/UIKit/UIKit-1914.85/UIDatePicker.m:1200 2012-06-29 > 01:19:15.753 MyApp[1215:707] *** Terminating app due to uncaught > exception 'NSInternalInconsistencyException', reason: 'Invalid > parameter not satisfying: date' […]

cocoa在第一天获得

如何获得一个星期的第一天的date 这似乎更容易,因为: 当星期一从星期日开始,我需要回到星期天的date 如果星期一开始,我需要得到星期一的date inputdate是任何一个星期的时间…我尝试了几种方法,但边缘案例使其difficould 我做了一个函数,但不能在100%(不知道[组件setDay:-weekday + 2];) – (NSDate *)firstDateOfWeek { NSCalendar * calendar = [NSCalendar currentCalendar]; NSDateComponents *weekdayComponents = [calendar components:(NSDayCalendarUnit | NSWeekdayCalendarUnit) fromDate:self]; // because sunday is 0, we need it to be 6 NSInteger weekday = (([weekdayComponents weekday] + 6) % 7); NSDateComponents *components = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit […]

NSCalendardate错误

我试图使用NSCalendar和NSIslamicCalendar标识符。 但是一天结果不好,她是我的代码: NSCalendar *calandar = [[NSCalendar alloc]initWithCalendarIdentifier:NSIslamicCalendar]; NSDateComponents *components = [calandar components:(NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit) fromDate:[NSDate date]]; NSInteger theDay = [components day]; NSInteger theMonth = [components month]; NSInteger theYear = [components year]; [components setDay:theDay]; [components setMonth:theMonth]; [components setYear:theYear]; NSDate *thisDate = [calandar dateFromComponents:components]; NSLog(@"year=%i month=%i day=%i",theYear,theMonth,theDay); NSLog(@"thisdate = %@", [thisDate description]); NSString *strDate = […]

在第一个月,NSDate返回错误的date

我的应用程序使用[NSDatedate]函数获取当前date。 上午除了每个月的第一天外,其他日子的工作都很好。 即遵循以下步骤: 将系统date设置为01 – 2011年6月和00.00午夜至5.59 AM之间的时间。 使用以下代码: NSLog(@"Current Date :: %@",[NSDate date]); O / P是::当前date:: 2011-05-31 19:40:21 +0000 所需的O / P是::当前date:: 2011-06-01 00:00:00(即所设定的时间)+0000 也从6上午它工作正常。 这是什么原因? 其实我不希望string格式的NSDate,但我想要的是NSDatedate对象对应于当前月份的第一个date。 为此,我使用下面的代码片段: NSCalendar *gregorian = [[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar]; [gregorian setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]]; NSDateComponents *comp = [gregorian components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:[NSDatedate]]; [comp setDay:1]; NSDate *firstDayOfMonthDate = [gregorian dateFromComponents:comp]; [gregorian release]; […]