iOS NSDate、NSCalendar、NSDateComponents

时间解析(NSDate、NSCalendar、NSDateComponents):

1、使用NSCalendar和NSDateComponents解析日期,直接获取到年月日时分秒。获取到年月日时分秒其实都是通过NSDateComponents来解析的

[calendar components:(NSCalendarUnitYear |NSCalendarUnitMonth | NSCalendarUnitDay) fromDate:date];
NSDate *date = [NSDate date];

NSCalendar *calendar = [NSCalendar currentCalendar];

NSDateComponents *comps;

    // 年月日获得
 comps = [calendar components:(NSCalendarUnitYear |NSCalendarUnitMonth | NSCalendarUnitDay) fromDate:date];

NSInteger y = [comps year];

NSInteger m = [comps month];

NSInteger d = [comps day];

NSLog(@"year: %ld month: %ld, day: %ld", y, m, d);

  

//当前的时分秒获得

comps = [calendar components:(NSCalendarUnitHour |NSCalendarUnitMinute | NSCalendarUnitSecond)  fromDate:date];

NSInteger h = [comps hour];

NSInteger m = [comps minute];

NSInteger s = [comps second];

NSLog(@"hour: %li minute: %li second: %li", h, m,s);

  

2、还可以使用NSDateFormatter将日期格式化为 "yyyy-MM-dd hh/HH:mm:ss" 后,再用字符串逐步切割,逐渐获取到年月日时分秒(先用" "切割,然后再用”-“和”:"切割)即可获取到

NSDate *date = [NSDate date];

NSDateFormatter *formatter= [[NSDateFormatteralloc] init];

formatter.dateFormat [email protected]"yyyy-MM-dd HH:mm:ss";

NSString *str = [formatterstringFromDate:date];

 NSArray *arr = [str componentsSeparatedByString:@" "];

 NSArray *arr1 = [arr[0] componentsSeparatedByString:@"-"]; // 年 月 日

 NSArray *arr2 = [arr[1] componentsSeparatedByString:@":"]; // 时 分 秒

  

时间: 2024-11-10 16:43:04

iOS NSDate、NSCalendar、NSDateComponents的相关文章

NSDate(NSCalendar,NSDateComponents,NSDateFormatter)

-1 NSString 转成 NSDate NSString *time = @"2014-05-18 09:24:40"; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss"; NSDate *date = [dateFormatter dateFromString:time]; NSLo

ios中利用NSDateComponents、NSDate、NSCalendar判断当前时间是否在一天的某个时间段内。

应用中设置一般会存在这样的设置,如夜间勿扰模式,从8:00-23:00,此时如何判断当前时间是否在该时间段内.难点主要在于如何用NSDate生成一个8:00的时间和23:00的时间,然后用当前的时间跟这俩时间作对比就好了. 下面提供两条思路: 法1.用NSDate生成当前时间,然后转为字符串,从字符串中取出当前的年.月.日,然后再拼上时.分.秒,然后再将拼接后的字符串转为NSDate,最后用当前的时间跟自己生成的俩NSDate的时间点比较.(该方法比较笨,也不难,但看起来有点太菜了,看上去不怎么

ios正在使用NSDateComponents、NSDate、NSCalendar它的结论是在当前时间是在一段时间在一天。

一般应用程序设置这一组的存在,比如夜间模式,如果你.从8:00-23:00.在这个当前的时间是如何推断出期间.主要的困难在于如何使用NSDate生成8:00时间和23:00时间.然后用当前时间,也许有足够的时间,以使控制. 这里有两种思路: 法1.使用NSDate生成当前时间,然后转为字符串,从字符串中取出当前的年.月.日,然后再拼上时.分.秒,然后再将拼接后的字符串转为NSDate,最后用当前的时间跟自己生成的俩NSDate的时间点比較.(该方法比較笨,也不难.但看起来有点太菜了,看上去不怎么

iOS知识树,知识目录(包括对象、Block、消息转发、GCD、运行时、runloop、动画、Push、KVO、tableview,UIViewController、提交AppStore)

本文旨在总结iOS知识网络,该知识网络罗列出常见UIKit,Foundation的对象特点和一些使用经验:文本编辑采用树的形式,对知识点进行罗列,并标注一些使用经验(★)希望对初学者有用或给一些解决疑难杂症者提供思路:某些知识点会深入探讨:通过总结希望站在一个较高平台的角度全观Objective-C.知识树中有些是原创文章,有些则是转载网络上iOS大神的文章.笔者会尽量详细的介绍各个知识点.当然一个人的知识面是相当有限的,在给各位读者提供知识参考的同时,欢迎大家对本文提意见. /->UIView

iOS Dev (55) 获取当前年、月、日等信息

iOS Dev (55) 获取当前年.月.日等信息 作者:大锐哥 博客:http://prevention.iteye.com - NSDate *now = [NSDate date]; NSCalendar *calendar = [NSCalendar currentCalendar]; NSUInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUn

[iOS]时间筛选之<本周、上周、更早>

1.可以实现时间筛选,目测应该还有更简单的方法. 思路: 获取当天时间,和目标时间进行比对操作. 注意点:时区 时区 时区 重要的时区说三遍. - (void)viewDidLoad { [super viewDidLoad]; NSDate * today = [NSDate date]; //定义当前时区时间 NSString * time [email protected]"2015-08-16 00:00:00"; NSDate* xmlData = [self dateFro

iOS开发系列--音频播放、录音、视频播放、拍照、视频录制

iOS开发系列--音频播放.录音.视频播放.拍照.视频录制 转载:http://www.cnblogs.com/kenshincui/p/4186022.html#avFoundationCamera --iOS多媒体 概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操作都提供了多套API.在今天的文章中将会对这些内容进行一一介绍: 音频 音

iOS开发系列--音频播放、录音、

音频 在iOS中音频播放从形式上可以分为音效播放和音乐播放.前者主要指的是一些短音频播放,通常作为点缀音频,对于这类音频不需要进行进度.循环等控制.后者指的是一些较长的音频,通常是主音频,对于这些音频的播放通常需要进行精确的控制.在iOS中播放两类音频分别使用AudioToolbox.framework和AVFoundation.framework来完成音效和音乐播放. 音效 AudioToolbox.framework是一套基于C语言的框架,使用它来播放音效其本质是将短音频注册到系统声音服务(

【转】IOS 学习之 NSPredicate 模糊、精确、查询

转自:http://blog.csdn.net/lianbaixue/article/details/10579117 简述:Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取. 定义(最常用到的方法): NSPredicate *ca = [NSPredicate predicateWithFormat:(NSString *), ...]; Format:(1)比较运算符>,<,==,>=,<=,!=可用于数值及字