我从RSS Feed中提取数据.Feed中的一个键是表示项目创建日期和时间的字符串.
我试图将此字符串值转换为NSDate.字符串值从RSS源返回为:2009-11-18T22:08:00 + 00:00
我尝试了以下代码无济于事:
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyyMMdd HH:mm"];
NSDate *myDate = [df dateFromString: [[storedDates objectAtIndex:indexPath.row] objectForKey: @"UsersDate"]];
Run Code Online (Sandbox Code Playgroud)
理想的情况下; 除了将值转换为NSDate值之外,我还想使用手机上的本地化日期格式对其进行格式化.
任何指针都会有很大的帮助.
亲切的问候
考虑开始日期和结束日期:
NSDate *startDate, *endDate;
Run Code Online (Sandbox Code Playgroud)
例如,startDate可能是2010年12月10日,endDate可能是2011年1月4日.
考虑从2010年12月10日到2011年1月4日的天数.
我如何确定相同天数但恰好在1年前的日期范围.我希望它能够考虑到闰年.所以我不能简单地从每个日期减去365天.
我想最终得到:
NSDate *oneYearAgoStartDate, *oneYearAgoEndDate.
Run Code Online (Sandbox Code Playgroud)
所以也许在这种情况下,oneYearAgoStartDate将是2009年12月10日,oneYearAgoEndDate将是2010年1月4日(注意我还没有证实这一点).
我怎么能初始化这两个变量来实现我的需要.
我正在使用以下代码来获取NSDate,将其转换为NSString然后返回到NSDate.
NSDateFormatter* dtFormatter = [[NSDateFormatter alloc] init];
[dtFormatter setDateFormat:@"MM/dd/YYYY"];
NSDate* dt = [NSDate date];
NSString* strDate = [dtFormatter stringFromDate:dt];
NSLog(@"First = %@",strDate);
NSDate* dt2 = [dtFormatter dateFromString:strDate];
NSString* strDate2 = [dtFormatter stringFromDate:dt2];
NSLog(@"Second = %@",strDate2);
Run Code Online (Sandbox Code Playgroud)
但我得到的输出是不同的:
2011-02-12 08:17:21.851 SF Calculation[16297:207] First = 02/12/2011
2011-02-12 08:17:21.852 SF Calculation[16297:207] Second = 12/26/2010
Run Code Online (Sandbox Code Playgroud)
将NSDate转换为NSString并从NSString转换回NSDate时,为什么会有所不同?
我需要将此字符串日期"2011-06-25T11:00:26 + 01:00"转换为长期值.
我试过这个
NSDateFormatter *df = [[[NSDateFormatter alloc] init] autorelease];
[df setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
[df setDateFormat:@"yyyy-MM-ddHH:mm:ssZ"];
NSDate *date = [df dateFromString:[time stringByReplacingOccurrencesOfString:@"T" withString:@""]];
[df setDateFormat:@"eee MMM dd, yyyy hh:mm"];
NSLog(@"time%@", time);
long lgTime = (long)[date timeIntervalSince1970];
Run Code Online (Sandbox Code Playgroud)
但这不起作用.请帮我.
提前致谢.
我试过这个:
NSDateFormatter *df= [[[NSDateFormatter alloc] init] autorelease];
[df setDateFormat:@"yyyy-MM-dd HH:MM:SS"];
NSDate *dt2 = [df dateFromString:@"2011-11-23 09:44:12"];
Run Code Online (Sandbox Code Playgroud)
但当我这样做时:
NSLog(@"dt2 is %@", dt2);
Run Code Online (Sandbox Code Playgroud)
它返回null.任何想法为什么?
嗨,我正在尝试格式化我从服务器获取的日期.我试过这样的
NSString *dateStr =@"2012-5-21";
// Convert string to date object
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-mm-dd"];
NSDate *date = [dateFormat dateFromString:dateStr];
// Convert date object to desired output format
[dateFormat setDateFormat:@"dd MMM yyyy"];
dateStr = [dateFormat stringFromDate:date];
finalDate.text=dateStr;
[dateFormat release];
Run Code Online (Sandbox Code Playgroud)
但代替21 May 2012.我正进入(状态21 Jan 2012
我一直在研究这个问题,似乎无法找到解决方案.在我的应用程序中,我ABAddressBook通过创建日期唯一地标识联系人,因为不能同时创建两个联系人.在我的应用程序中,创建日期存储在一个名为的字符串中uid,如下所示.我正在检查两个联系人是否相同,我通过执行以下条件语句来执行此操作:
NSString *uid = @"some string";
if([(__bridge_transfer NSString *)ABRecordCopyValue(currentPersonRef, kABPersonCreationDateProperty) isEqualToString:uid]) {
//Do some code
}
Run Code Online (Sandbox Code Playgroud)
但是,当我运行此代码时,我收到以下错误:
[__NSDate isEqualToString:]:无法识别的选择器发送到实例0x8c7c770
我敢肯定,问题是,ABRecordCopyValue()返回了不被强制转换为一个NSDate对象NSString的(__bridge_transfer NSString *),所以当我把它比作uid用isEqualToString,它崩溃.问题是,我认为通过将其转换为NSString对象,isEqualToString:可行.我的问题是:
提供的答案很有用,但它们并没有完全解决我的问题(实际上他们确实如此,但我有一个后续问题).在我的代码的另一部分,我运行这个:
NSString *uid = (__bridge_transfer NSString *)ABRecordCopyValue(currentPerson, kABPersonCreationDateProperty);
Run Code Online (Sandbox Code Playgroud)
如果我NSLog uid我得到这个:
2012-10-28 21:55:29 +0000
那么uid如果isEqualToString:不起作用,我将如何在上述条件语句中进行比较?
我正在建立一个NSPredicate来获取Core Data,它的设置如下:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(date >= %@) AND (date <= %@)", todaysDate, tomorrowsDate];
Run Code Online (Sandbox Code Playgroud)
我需要todaysDate今天00:00:00,我需要tomorrowsDate今天23:59:59.
我不能设置todaysDate等于[NSDate date]然后用NSDateComponents操纵小时,分钟和秒,因为[NSDate date]给我一个比我当地实际时间提前5小时的日期(所以如果它是在5月6日晚上11点,那么[NSDate date]会给我"2014-05-07 04:00:00 +0000",但我仍然需要它认为它是5月6日,而不是7日!).
我如何操纵我在Xcode中使用的工具,以便始终将我的变量todaysDate变为今天午夜,并tomorrowsDate在明天午夜之前成为第二个?
我正在尝试将字符串转换为NSdate.字符串日期是" 12/27/2014 07:42:00 AM +0000 "
这是我的代码:
NSDate *date =[[NSDate alloc] init];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"MM/dd/yyyy HH:mm:ss a";
date = [ dateFormatter dateFromString:dateString];
Run Code Online (Sandbox Code Playgroud)
日期值始终为零.你们中的任何人都知道我的错误是什么?
我真的会帮助你.
我有一个数据结构,其中包含以毫秒为单位的时间戳,例如1470075992.我想将此转换为仅日期,即示例24/12/2016,而不保留转换产生的其他详细信息.
我可以用什么功能来实现这个目标?
谢谢,