Tag: nsdateformatter

NSDateFormatter工作不正常?

我的代码, -(NSString *)trimDateStringInRequiredFormat:(NSString *)dateInString{ NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"]; NSDate *date = [dateFormatter dateFromString:dateInString]; [dateFormatter setDateFormat:@"hh:mm aaa"]; NSString *dateDisplay = [dateFormatter stringFromDate:date]; return dateDisplay; } 以上工作正常时,我的date是2012年6月6日12:00:00,我有适当的输出,如上午12:00。 但是当我发送我的date如2012-06-06 15:00:00它不返回我适当的输出,而是,它返回我空输出。 当我试图跟踪这个函数2012-06-06 NSDate *date = [dateFormatter dateFromString:dateInString];dateNSDate *date = [dateFormatter dateFromString:dateInString]; 这一行没有正确转换。 为什么会发生? 我在哪里错了这个代码?

如何按降序对string中包含date的数组进行sorting?

我想按降序sorting包含datestring的数组,我已经尝试过所以答案,但我得到错误的输出。 请看我的代码如下: NSArray *dateArray=[NSArray arrayWithObjects:@"01/12/2012",@"01/26/2011",@"02/09/2005",@"02/24/2006",@"03/19/2007",@"07/14/2011",@"08/17/2007",@"10/04/2007",@"10/31/2006",@"12/05/2012",@"12/06/2006",@"12/23/2008",nil]; NSDateFormatter *formatter=[[NSDateFormatter alloc]init]; [formatter setDateFormat:@"MM/DD/YYYY"]; NSMutableArray *tempArr=[[NSMutableArray alloc]init]; for (int i=0; i<[dateArray count]; i++) { NSString *dt=[dateArray objectAtIndex:i]; NSDate *newDt=[formatter dateFromString:dt]; [tempArr addObject:newDt]; } NSLog(@"tempArr is %@",tempArr); 我得到如下的控制台输出: 2013-08-27 15:29:50.418 sample [3688:c07] tempArr是(“2011-12-24 18:30:00 +0000”,“2010-12-18 18:30:00 +0000”,“ 2004-12-18 18:30:00 +0000“,”2005-12-24 18:30:00 +0000“,”2006-12-23 18:30:00 +0000“,”2010-12-18 18:30:00 +0000“,”2006-12-23 18:30:00 +0000“,”2006-12-23 18:30:00 +0000“,”2005-12-24 […]

转换date格式返回错误的datexcode

我想将date从23 May, 2017转换为23-05-2017 。 我已经尝试使用下面的代码,但它返回25-12-2016 。 NSDateFormatter *oldFormatter = [NSDateFormatter new]; [oldFormatter setDateFormat:@"dd MMM, YYYY"]; NSDate *oldDate = [oldFormatter dateFromString:dateStr]; NSDateFormatter *newFormatter = [NSDateFormatter new]; [newFormatter setDateFormat:@"dd-MM-YYYY"]; 我正在使用Xcode 8.2.1。 谢谢。

如何将date格式化为IST?

我必须格式化date如下: 19-JUL-2014 10:27:16 IST 我怎样才能做到这一点? 我应该发送“IST”作为string对象吗? 我试过了 – NSDate* sourceDate = [NSDate date]; NSLog(@"Date is : %@", sourceDate); NSTimeZone *currentTimeZone = [NSTimeZone localTimeZone]; NSLog(@"TimeZone is : %@", currentTimeZone); NSDateFormatter * dateFormatter = [[NSDateFormatter alloc]init] ; dateFormatter setDateFormat:@"dd-MMM-yyyy HH:mm:ss Z"]; [dateFormatter setTimeZone:[NSTimeZone systemTimeZone]]; NSLog(@"%@",[dateFormatter stringFromDate:sourceDate]);

NSDateFormatter不会格式化奇怪的datestring

所以我有一个我收到的datestring,看起来像这样:“2013-03-20T21:13:26-7:00”,我从networking后端收到。 我无法控制后端,只是一个fyi。 我的意愿是将date格式化为这样:9:13 pm at 3/20。 当我做以下 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; NSDate *date = [dateFormatter dateFromString:@"2013-03-20T21:13:26-7:00"]; date为空。 我的第一个想法是,datestring看起来很奇怪,也许我应该删除T和“-7:00”,因为“-7:00”被附加到我收到的每一个date,我不知道是什么那是为了。 即使在string看起来像@“2013-03-20 21:13:26”, date仍为空。 我承认在格式date我不是专业人士,所以如果我能在这个问题上得到一些帮助,那将是很棒的。 提前致谢!

MagicalRecorddateparsing

我有以下格式的date: 2013-05-04T05:07:09+00:00 我正在使用MagicalRecord自动映射NSDate。 据我所见,上述date格式应符合MagicalRecord的默认date格式: yyyy-MM-dd'T'HH:mm:ss'Z' 。 我已经尝试用属性的用户信息中的自定义dateFormat条目(请参阅此文章 ): yyyy-MM-ddTHH:mm:ss+Z , yyyy-MM-dd T HH:mm:ss Z , yyyy-MM-dd'T'HH:mm:ss'+'Z 但没有一个工作,为了让它正确parsingdate,它总是返回nil无论设置自定义dateFormat或使用MagicalRecord的默认格式。

如何获取当月的开始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()!) } } 我的结构: […]

NSDateFormatter仍然parsing,而不是格式不正确

有一些问题parsingdate。 我有一个支持的格式数组,一旦我从API接收date(string),我尝试parsing它遍历格式,直到我得到一个有效的NSDate对象。 Xcode游乐场的片段 – let dateString = "02/06/1987" // –> want to parse into this Feb 6, not Jun 2 let dateFormatIncorrect = "dd.MM.yyyy" let dateFormatCorrect = "MM/dd/yyyy" let dateFormatter = NSDateFormatter() dateFormatter.dateFormat = dateFormatIncorrect let date = dateFormatter.dateFromString(dateString)! // "Jun 2, 1987, 12:00 AM" dateFormatter.dateFormat = dateFormatCorrect let date2 = dateFormatter.dateFromString(dateString)! // "Feb 6, […]

来自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/