Tag: nsdateformatter

格式化后NSDateFormatter错误的string

我通过一个string参数tempDateString以[日月年]格式(例如01 05 2005)接收date: NSLog(@"tempdatestring %@", tempDateString); NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"dd MM YYYY"]; NSDate *dayDate = [dateFormatter dateFromString:tempDateString]; NSLog(@"daydate %@", dayDate); 我的问题是,这两个日志不匹配。 输出是: tempdatestring 04 10 2012 daydate 2011-12-24 22:00:00 +0000 我应该在date格式化程序的date格式中更改什么来获取最佳date?

获取上一个,下一个星期以及周六和周日

我想显示星期一至星期五(不包括周六/周日)的date/date,如下图所示。 我的情景: 当屏幕加载当前周应显示。 在上一个button点击( DisplayedWeek – 1 ) 点击下一步button( DisplayedWeek + 1 )。 我的工作 , 经过一番研究,这是我所尝试过的。 let calendar = Calendar.current let currentDate = calendar.startOfDay(for: Date()) /* value = 0 for current, value = 1 for next, value = -1 for previous week. */ let nextWeek:Date = calendar.date(byAdding: .weekOfMonth, value: 1, to: currentDate)! as Date let […]

date时间格式从iPhone设置和GMT偏移

我有date时间格式的string,如: 2013-05-28 10:56:31 我怎样才能把这个string格式化为iPhone的默认格式? (在iPhone设置中) 以及如何设置date时间格林尼治标准时间加上时移偏移量(在iphone中设置)。 例如GMT + 1 这可能吗?

Nsdateformatter +时区问题

我想parsing这个date时间戳开始string: Wed, 11 Sep 2013 08:51:41 EEST 这个问题只有 EEST ,我试过Z或ZZ或V,什么也没有发生。 date格式化程序总是获得NULL。 当我从string切割EEST的时候,一切顺利。 任何人都可以build议,如何解决这个问题? 谢谢 更新: dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_EN_POSIX"]]; [dateFormat setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"EEST"]]; [dateFormat setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss V"]; dateFromString = [dateFormat dateFromString:beginString];

在UITableView单元格中格式化date和时间

我需要在tableView:cellForRowAtIndexPath:格式化date和时间。 由于创build一个NSDateFormatter是一个相当繁重的操作,我已经使他们静态。 这是以行为单位格式化date和时间的最佳方法吗? – (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; MyCell*cell = (MyCell*)[self.tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; static NSDateFormatter *dateFormatter = nil; if (!dateFormatter) { dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setLocale:[NSLocale currentLocale]]; [dateFormatter setDateStyle:NSDateFormatterLongStyle]; } cell.dateLabel = [dateFormatter stringFromDate:note.timestamp]; static NSDateFormatter *timeFormatter = nil; if (!timeFormatter) { timeFormatter = [[NSDateFormatter alloc] […]

string格式的dateselect器date已closures

我有一个只有月,日,年的UIDatePicker。 我想输出这个选定的date到TextField使用此代码: -(IBAction) dateChanged:(id)sender { NSDate *date = datePicker.date; NSDateFormatter *df = [[NSDateFormatter alloc] init]; [df setDateFormat:@"M/d/YYYY"]; expirationDateField.text = [df stringFromDate:date]; [df release]; } 对于大多数date,这是有效的,但由于某种原因,当我select2009年1月1日,或2009年1月2日,我最终得到“1/1/2008”或“1/2/2008”(这不是特定于2009)。 我认为这是一个时区问题,但如果是这样的话,它将不会在1月2日显示错误的一年。 有任何想法吗?

在SWIFT中将NSDate转换为具有特定时区的string

在我的coredatabase中,我有一个具有NSDate属性的“新闻”实体。 我的应用程序是全球。 新闻发布2015-09-04 22:15:54 +0000法国时间(GMT +2) 为了保存date,我把它转换成UTC格式。 let mydateFormatter = NSDateFormatter() mydateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss+00:00" mydateFormatter.timeZone = NSTimeZone(abbreviation: "UTC") var dateToSaved : NSDate! = mydateFormatter.dateFromString(date) 新闻loggingdate: 2015-09-04 20:15:54 +0000 (UTC) 后来在应用程序中,我需要转换此string中保存的NSDate: let mydateFormatter = NSDateFormatter() mydateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss+00:00" var dateInString:String = mydateFormatter.stringFromDate(date) 如果我在发布新闻时(即GMT + 2)时在同一时区启动应用程序,则一切正常。 如果我更改我的设备的时区,例如UTC-4,然后在string中转换我的NSDate,date是不一样的。 我得到了: 2015-09-04 16:15:54 +0000 如何获得与我的数据库中的任何时区相同的UTCdate? 我对时区不太舒服,但我认为我的问题来自NSDate中的“+0000”。 在我所有的日子里,总是有+0000,我想这应该是正确的时区。 但我不知道该怎么办

NSDateFormatter:如何将datestring与'GMT'转换为本地NSDate?

我需要将从服务器检索到的datestring转换为本地NSDate,string如下所示: "Fri, 30 Nov 2012 00:35:18 GMT" 但现在是11月30日星期五上午11点36分,那么如何将string转换为有意义的本地NSDate呢? 我发现: iPhone:NSDate将GMT转换为当地时间 但看起来是相反的。

Dateformatter给对话时间错误

我想将我的datestring转换为NSDate但它返回正确的date和错误的时间。 这是我的代码: NSString *dateStr = @"2013-12-20 12:10:40"; // Convert string to date object NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat: @"yyyy-MM-dd HH:mm:ss"]; NSDate *lastUpdatedate = [dateFormatter dateFromString:dateStr]; NSLog(@"lastUpdatedate : %@",lastUpdatedate); 它返回这个: lastUpdatedate : 2013-12-20 06:40:40 +0000

检查时间是否在两次iOS之间

我有两次说,上午8点40分和下午4点,我想要做的是,要检查当前时间是否在给定时间之间? 我已经试过这段代码,但它不工作:(你能帮我一下,我犯了什么错误? NSDateComponents *components = [[NSCalendar currentCalendar] components:NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit fromDate:[NSDate date]]; NSInteger currHr = [components hour]; NSInteger currtMin = [components minute]; NSString startTime = @"21:00"; NSString endTime = @"07:00"; NSArray *arr=[NSArray arrayWithObjects:startTime,endTime, nil]; int stHr = [[[[arr objectAtIndex:0] componentsSeparatedByString:@":"] objectAtIndex:0] intValue]; int stMin = [[[[arr objectAtIndex:0] componentsSeparatedByString:@":"] objectAtIndex:1] intValue]; int enHr = […]