Tag: nsdate

如何获取当月的开始date和结束date(Swift 3)

我试图以dd/MM/yyyy格式获取当前月份的开始date和结束date。 我尝试使用扩展在这个问题的答案。但它似乎不是我想要的(格式是不同的,它也给了我上个月的最后一个date和当前月最后一个date)。 有人能帮我吗。 扩展类: extension Date { func startOfMonth() -> Date? { let comp: DateComponents = Calendar.current.dateComponents([.year, .month, .hour], from: Calendar.current.startOfDay(for: self)) return Calendar.current.date(from: comp)! } func endOfMonth() -> Date? { var comp: DateComponents = Calendar.current.dateComponents([.month, .day, .hour], from: Calendar.current.startOfDay(for: self)) comp.month = 1 comp.day = -1 return Calendar.current.date(byAdding: comp, to: self.startOfMonth()!) } } 我的结构: […]

在时区之间快速转换date

我有一个date存储在我的在线服务器数据库在GMT 。 我加载date并使用以下代码将其转换为用户的时区: if let messagedate = oneitem["timestamp"] as? String { let dateFormatter = NSDateFormatter() dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" let date = dateFormatter.dateFromString(messagedate) let source_timezone = NSTimeZone(abbreviation: "GMT") let local_timezone = NSTimeZone.systemTimeZone() let source_EDT_offset = source_timezone?.secondsFromGMTForDate(date!) let destination_EDT_offset = local_timezone.secondsFromGMTForDate(date!) let time_interval : NSTimeInterval = Double(destination_EDT_offset – source_EDT_offset!) let final_date = NSDate(timeInterval: time_interval, sinceDate: date!) […]

NSDate更改时区

我正在写一个涉及时区的应用程序。 我想抓住用户的设备时间,让我们打电话给datedateA ,我有一个总是在EDT时区( dateB )的目标date。 我想得到两个date之间的差异,并显示用户,但在dateB的时区。 例如: 用户设备时间是上午07:30 PDT,而dateB是上午11:00 EDT。 所以时差将是30分钟。 我的algorithm是: 1)获取用户设备时间 2)转换为EDT 3)抓住dateA和dateB之间的时间差 我的问题是,我得到用户的设备时间[NSDate date] ,并通过与时区EDT的DateFormatter 。 时间不会改变。 编辑:: NSDate *localDate = [NSDate date]; //this will have 7:30AM PDT NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss"; [dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"EDT"]]; NSString *convertedTimeString = [dateFormatter stringFromDate:localDate]; EDT如何转换时间string不包含10:30 AM? 我究竟做错了什么?

有没有办法将自然语言dateNSString转换为NSDate

假设我有NSString @"tomorrow" 有没有任何库像这样的string,并将其转换成NSDates? 我正在想象/希望这样的事情: NSString* humanDate = @"tomorrow at 4:15"; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"x at HH:MM"]; NSDate* date = [dateFormatter dateFromString:humanDate]; 我也想做一些像“下一个星期一”等等的东西,但是它不一定非常复杂。 我可以强制input规则,但是我想要一点自然语言。 我的另一种方法是把string分解成几部分,然后手动格式化。 但是我希望有人已经这样做了。

如何自动生成NSManagedObject子类与date而不是NSDatedate属性?

我目前正在更新我的项目Swift 3,我将所有的NSDate方法和扩展到date,以保持在应用程序的标准。 问题是,我使用Xcode来自动生成我的NSManagedObject子类,它生成date属性作为NSDate而不是date。 有没有一种方法来生成date属性为Date? 编辑 按照Apple开发者文档 : Core Data本身支持多种属性types,如string,date和整数(分别表示为NSString,NSDate和NSNumber的实例)。 所以我认为这是不可能的= /

来自NSString的NSDate给出空结果

我正在使用下面的代码来生成NSDate -> NSString +(NSString *)getCurrentTime { NSDate *now = [NSDate date]; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"dd-MM-yyyy hh:MM:SS a"]; [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; NSString* str =[dateFormatter stringFromDate:now]; [dateFormatter release]; NSLog(@"%@",str); return str; } 上面的代码中的一切都很好。 我正在使用上面的代码在数据库中存储string。 现在,检索该string给我NULL 。 以下是我的代码以特定格式检索date NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"hh:MM:SS a"]; [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; NSDate *dt =[dateFormatter dateFromString:crdInfo.swipeTime]; […]

用于BST而不是GMT + 1的NSDateFormatter

我想在我的时间轴上显示以下string: “GMT / BST” 代码如下: NSDateFormatter *dateformatter=[[NSDateFormatter alloc] init]; [dateformatter setDateFormat:@"zzz"]; timeZoneString = [NSMutableString stringWithFormat:@"%@ / %@",[dateformatter stringFromDate:startDate],[dateformatter stringFromDate:endDate]]; 但是这给了“GMT / GMT + 01:00” 什么是将“GMT + 01:00”变成“BST”的NSDateFormatter代码? 我无法得到正确的格式化程序来做到这一点,试图z | zzz | z | zzz | v | v见… http://waracle.net/iphone-nsdateformatter-date-formatting-table/

获得本周date的IOs的date

我已经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。我做错了什么?

如何实现上个月/下个月的button并显示当前月份的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 […]

在swift中使用NSDateFormatter时,我得到零

这是我的代码: println(myStringDate) // 2015-02-26T17:46:34.000Z let dateFormatter = NSDateFormatter() dateFormatter.dateFormat = "YYYY-MM-DDTHH:mm:ss.sssZ" let myDate = dateFormatter.dateFromString(myStringDate) println(myDate) // nil 为什么零? 我究竟做错了什么 ?