如果我对时间不感兴趣,我可以忽略它吗? I.e我有一个日期字符串,看起来像这样@"2012-12-19T14:00:00"
,但我只对获取日期(2012-12-19)感兴趣,但如果我设置NSDateFormatter
就像[dateFormatter setDateFormat:@"yyyy-MM-dd"];
它会返回我没有NSDate
。Objective-C - NSDateFormatter dateFromString忽略时间
1
A
回答
3
一个NSDate对象将总是包含的时间成分为好,因为它是再版表示一个时间点 - 从这个角度来看,人们可能会认为NSDate的名称有误导性。
您应该创建一个日期格式化程序,用于从字符串创建日期,将时间设置为一天的开始时间,并使用第二个日期格式化程序输出没有时间组件的日期。
NSString *dateString = @"2012-12-19T14:00:00";
NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];
[inputFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
[outputFormatter setDateStyle:NSDateFormatterShortStyle];
[outputFormatter setTimeStyle:NSDateFormatterNoStyle];
NSDate *date = [inputFormatter dateFromString:dateString];
//this will set date's time components to 00:00
[[NSCalendar currentCalendar] rangeOfUnit:NSDayCalendarUnit
startDate:&date
interval:NULL
forDate:date];
NSString *outputString = [outputFormatter stringFromDate:date];
NSLog(@"%@", outputString);
结果
19.12.12
而格式 - 因为它是由造型选择 - 将取决于您的环境区域的
-1
所有日期字符串返回10个字符之日起,我的意思是todayy的日期将是2012年11月19日
您可以轻松地串日期和使用它,只要你想:
例如:
NSString* newDate = @"";
newDate = [[NSDate date]substringToIndex:10];
的出放将是:2012-11-19
+5
我看到了崩溃的道路...... – vikingosegundo
相关问题
- 1. NSDateFormatter dateFromString
- 2. NSDateFormatter dateFromString崩溃
- 3. NSDateFormatter上dateFromString
- 4. NSDateFormatter dateFromString转换
- 5. 使用NSDateFormatter dateFromString
- 6. - [NSDateFormatter dateFromString:]返回nil
- 7. NSDateFormatter&NSDate dateFromString outputs null
- 8. NSDateFormatter dateFromString返回null
- 9. NSDateFormatter dateFromString回来null
- 10. NSDateFormatter dateFromString与日期
- 11. NSDateFormatter忽略了24小时的时间格式
- 12. NSDateFormatter dateFromString为24小时日期给出错误的时间
- 13. NSDateFormatter忽略NSUserDefaults中的AppleLanguages
- 14. NSDateFormatter使用dateFromString返回nil
- 15. NSDateFormatter dateFromString返回空值
- 16. 无返回从dateFromString NSDateFormatter
- 17. NSDateFormatter奇怪的dateFromString行为
- 18. NSDateFormatter dateFromString解析EXIF数据
- 19. NSDateFormatter dateFromString始终返回nil
- 20. dateFromString和莫斯科时间
- 21. 忽略时间戳
- 22. NSDateFormatter dateFromString返回不正确的日期
- 23. NSDateFormatter DateFromString从RSS订阅返回(NULL)
- 24. NSDateFormatter dateFromString行为iOS6的改变
- 25. NSDateFormatter dateFromString结果没有意义,我
- 26. 返回nil为dateFromString调用NSDateFormatter
- 27. 为什么NSDateFormatter的dateFromString返回nil?
- 28. NSDateFormatter dateFromString:返回nil特定设备上
- 29. > 4.0 SDK中的NSDateFormatter dateFromString问题
- 30. NSDateFormatter dateFromString给出了错误的日期
我落得这样做:'NSString * event = [event substringToIndex:10]; //删除时间''[dateFormatter setDateFormat:@“yyyy-MM-dd”];''NSDate * eventDate = [dateFormatter dateFromString:event];'这是一个好的解决方案吗? –
我认为这是可能的最大丑陋解决方案。你应该把日期和时间当作NSDates。这也不会给你任何本地化和时区处理的灵活性。 – vikingosegundo
您是否确实需要将时间分量设置为'00:00'?难道你不能把TimeStyle作为'NoStyle'离开吗? –