时间日期处理

1.NSDateFormatter

  • 日期格式化

①可以把NSString 类型转为 NSDate类型

举例 把 "2015-08-23 19:46:14" 转为NSDate类型

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
// 设置日期格式(formatter对象就会按照这个格式去解析字符串,或者生成字符串)
// y年 M月 d日 H小时(24小时制) h小时(12小时制) m分 s秒
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSDate *createDate = [formatter dateFromString:@"2015-08-23 19:46:14"];

②把 NSDate 类型转为 NSString 类型

举例把当前时间 转为NSString型

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
// 设置日期格式(formatter对象就会按照这个格式去解析字符串,或者生成字符串)
// y年 M月 d日 H小时(24小时制) h小时(12小时制) m分 s秒
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss"; // 当前时间
NSDate *date = [NSDate date]; NSString *string = [formatter stringFromDate:date];

2.NSDate

    // 获得当前时间
NSDate *nowDate = [NSDate date]; //从beforeDate -> nowDate的时间间隔,秒
NSTimeInterval interval = [nowDate timeIntervalSinceDate:beforeDate]; // 时间戳
// "time": "6456546455435",到1970年的时间
[NSDate dateWithTimeIntervalSince1970:6456546455435 / 1000.0];

3.NSCalendar

日期组件

 // 日期组件 (年、月、日、小时、分、秒)
/** NSCalendarUnit 枚举量
* NSCalendarUnitEra
NSCalendarUnitYear
NSCalendarUnitMonth
NSCalendarUnitDay
NSCalendarUnitHour
NSCalendarUnitMinute
NSCalendarUnitSecond
NSCalendarUnitWeekday
NSCalendarUnitWeekdayOrdinal
NSCalendarUnitQuarter
NSCalendarUnitWeekOfMonth
*/

①获得单个元素

- (NSInteger)component:(NSCalendarUnit)unit fromDate:(NSDate *)date;

// 年
NSInteger year = [calendar component:NSCalendarUnitYear fromDate:createDate];
// 月
NSInteger month = [calendar component:NSCalendarUnitMonth fromDate:createDate];
// 日
NSInteger day = [calendar component:NSCalendarUnitDay fromDate:createDate];
NSLog(@"%zd %zd %zd", year, month, day);

②获得多个元素

   // 创建日期类--获取当前时分秒
NSCalendar *calendar = [NSCalendar currentCalendar]; NSDateComponents *cmp = [calendar components:NSCalendarUnitSecond | NSCalendarUnitMinute | NSCalendarUnitHour fromDate:[NSDate date]];
//获得当前秒
NSInteger sec = cmp.second;
//获得当前分钟
NSInteger min = cmp.minute;
//获得当前小时
NSInteger hour = cmp.hour;

③获得2个日期(NSDate)之间的时间间隔

NSCalendar *calendar = [NSCalendar currentCalendar];
NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
NSDateComponents *cmps = [calendar components:unit fromDate:beforeDate toDate:nowDate options:0];

iOS----时间日期处理的更多相关文章

  1. iOS下日期的处理(世界标准时转本地时间)

    NSDate存储的是世界标准时(UTC),输出时需要根据时区转换为本地时间 Dates         NSDate类提供了创建date,比较date以及计算两个date之间间隔的功能.Date对象是 ...

  2. ios 对日期的处理(包括计算昨天时间、明天时间)

    NSDate存储的是世界标准时(UTC),输出时需要根据时区转换为本地时间 Dates NSDate类提供了创建date,比较date以及计算两个date之间间隔的功能.Date对象是不可改变的. 如 ...

  3. 一篇文章吃透iOS、JS的时间日期(Date, Calendar, Locale, TimeZone)

    iOS 时间相关类 NSDate - 表示一个绝对的时间点. NSCalendar - 代表一个特定的日历,例如公历或者希伯来日历.它提供了一系列基于日期的计算,并且可以让你在"NSDate ...

  4. ios自定义日期、时间、城市选择器

    选择器,我想大家都不陌生,当需要用户去选择某些范围值内的一个固定值时,我们会采用选择器的方式.选择器可以直观的提示用户选择的值范围.统一信息的填写格式,同时也方便用户快速的进行选择,比如对于性别,正常 ...

  5. iOS - 获取当前时间日期星期几

    //获取当前时间日期星期 - (NSString *)getCurrentTimeAndWeekDay { NSArray * arrWeek=[NSArray arrayWithObjects:@& ...

  6. iOS时间问题

    在iOS开发中,经常会遇到各种各样的时间问题,8小时时差,时间戳,求时间间隔,农历等等.解决办法网上比比皆是,但大多零零散散,很多资料并没有说明其中问题.这里集中总结一下,以便于以后查阅和供大家参考. ...

  7. iOS下日期的处理

    NSDate存储的是世界标准时(UTC),输出时需要根据时区转换为本地时间 Dates         NSDate类提供了创建date,比较date以及计算两个date之间间隔的功能.Date对象是 ...

  8. IOS时间格式转换

    在开发iOS程序时,有时候需要将时间格式调整成自己希望的格式,这个时候我们可以用NSDateFormatter类来处理. 例如:如何将格式为“12-May-14 05.08.02.000000 PM” ...

  9. 设计和编写一个异步通用Picker选择器,用于时间日期、城市、商品分类的选择

    目录 一.功能规划 二.最底层基础实现 (1)Picker界面和功能实现 (2)不同类型的选择器基础实现 三.数据源层 (1)时间日期 (2)多级同步分类,如:城市 (3)多级异步分类,如:城市 四. ...

  10. 一起学微软Power BI系列-使用技巧(5)自定义PowerBI时间日期表

    1.日期函数表作用 经常使用Excel或者PowerBI,Power Pivot做报表,时间日期是一个重要的纬度,加上做一些钻取,时间日期函数表不可避免.所以今天就给大家分享一个自定义的做日期表的方法 ...

随机推荐

  1. 2015/12/29 eclipse应用 输出三角形

    public class Myfirst { public static void main(String[] args) { System.out.println("hello world ...

  2. USACO26 moofest 奶牛集会(归并排序)

    听说这题也是bzoj的3378&&poj1990,然而没有权限号交不了..poj懒得登. 题意:有n个奶牛,他们相互发出max(a[i].v,a[j].v)*abs(a[i].p-a[ ...

  3. jquery 中cache为true与false 的区别

    $.ajax({type: "get",cache: false,url: url,success: function (msg) { }}); cache为true与false ...

  4. 二.OC基础--1,对象的存储细节,2,#pragma mark指令,3,函数和对象方法的区别,4,对象和方法之间的关系 ,5.课堂习题

    1,对象的存储细节, 1. 当创建一个对象的时候:Person *p1 = [Person new],做了三件事情: 1,申请堆内存空间: 2,给实例变量初始化: 3,返回所申请空间的首地址; 2. ...

  5. http_load常见问题及解决方案

    1.错误信息:byte count wrong http_load在处理时会去关注每次访问同一个URL返回结果(即字节数)是否一致,若不一致就会抛出byte count wrong 所以动态页面可以忽 ...

  6. UI:通讯录实现

    通讯录实现草图: 代码: #pragma mark (.h文件)-------------------------------------------------------------------- ...

  7. MD5加密 和Sha256加密

    //MD5加密 private static string GetMd5Hash(string emailAddress) { byte[] data = MD5.Create().ComputeHa ...

  8. HDU 5903 Square Distance (贪心+DP)

    题意:一个字符串被称为square当且仅当它可以由两个相同的串连接而成. 例如, "abab", "aa"是square, 而"aaa", ...

  9. Ruby模块与类

    Ruby是单一继承,一个类只能有一个直接的母类 Mix-in 模式来处理复合需求 多重包含: 由下往上回溯,重复的只看最上方的      换句话说,程序由上往下执行,由具体到抽象,第二次发现同一个模块 ...

  10. bzoj 2132 圈地计划【最小割+dinic】

    对于网格图,尤其是这种要求相邻各自不同的,考虑黑白染色 对于这张染色后图来说: 对于每个黑格: 表示初始时选择商业区: s点向它连商业区收益的流量,它向t点连工业区收益的流量: 割断S侧的边说明反悔, ...