NSDate 类的总结,全面基础

<span style="font-size:24px;"><span style="font-size:18px;">//1.创建日期对象
        //创建的NSDate对象,获得的永远是0时区时间,如果要是求东八区时间,就加8个小时
        NSDate *date = [NSDate date];
        NSLog(@"%@",date);

        //创建明天此时的日期(时间间隔都是以秒为单位计算的)
        NSDate *tomorrow  = [NSDate dateWithTimeIntervalSinceNow:24*60*60];
        NSLog(@"%@",tomorrow);

        //创建昨天此时的日期(- 表示从现在开始向前面算起)
        NSDate *yesterday = [NSDate dateWithTimeIntervalSinceNow:-24*60*60];
        NSLog(@"%@",yesterday);

        //获取两个日期的时间间隔(timeInterval 是对双精度类型的重新定义,所以输出的时间要用%g,时间价格也是按秒来计算的)
        NSTimeInterval timeInterval = [tomorrow timeIntervalSinceDate:yesterday];
        NSLog(@"%g",timeInterval / 60 / 60 / 24);

        //比较日期的早晚
        //(1)比较两个日期中较早的日期(返回值类型为NSDate)
        NSDate *earlerDate = [yesterday earlierDate:tomorrow];
        NSLog(@"%@",earlerDate);

        //(2)比较两个日期中较晚的日期
        NSDate *laterDate = [yesterday laterDate:tomorrow];
        NSLog(@"%@",laterDate);

        //(3)比较两个日期(返回值类型为枚举类型,是拿第一个参数来减第二个参数的值,枚举值为 -1,0,1)
        NSComparisonResult result = [yesterday compare:tomorrow];
        NSLog(@"%ld",result);

        //时间间隔的练习:如果一个固定的时间到现在的时间在60秒以内,输出"刚刚",如果在"60 - 3600"输出"多少分钟前",如果在"3600 - 3600*24",输出"在多少小时前",如果在大于"3600*24"输出多少天前
        NSDate *date1 = [NSDate date];
        NSDate *date2 = [NSDate dateWithTimeIntervalSinceNow:100];
        NSTimeInterval time = [date2 timeIntervalSinceDate:date1];
        if (time > 0 && time <= 60) {
            NSLog(@"刚刚");
        }else if (time <= 3600){
            NSLog(@"%d分钟前",(int)(time / 60));
        }else if (time <= 3600 * 24){
            NSLog(@"%d小时前",(int)(time / 60 / 60));
        }else{
            NSLog(@"%d天前",(int)(time / 60 / 60 /24));
        }

        //NSDateFormatter日期格式类
        //作用:将日期以一定的格式进行转换(转换为字符串),另外也可将日期格式串转换为NSDate对象
        NSDate *date3 = [NSDate date];//创建当前的日期对象
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];//创建日期格式对象
        [formatter setDateFormat:@"yyyy-MM-dd HH:mm:SS"];//为对象设置日期的格式
        //指定日期格式
          //HH 表示24小时制 hh表示十二小时制
          //MM 表示月份 mm 表示分钟
          //dd 表示当月的天数 DD表示当天处于本年第几天
          //ss 表示秒数
          //如果年份给两个yy,则只显示年份的后两位,如果给其他个数的y,都是显示完整的年份.
          //例如:MM等 如果给两位,则月份如果是一位时,前面补0.
        [formatter setDateStyle:NSDateFormatterFullStyle];//设置日期输出的风格
        [formatter setTimeStyle:NSDateFormatterFullStyle];//设置时间输出的风格
        NSString *dateStr = [formatter stringFromDate:date3];
        NSLog(@"%@",dateStr);

        //将日期格式串转化为NSDate对象@"2008-08-08 20:08:08"
        NSString  *dateStr1 = @"2008-08-08 20:08:08";
        //创建日期格式化对象
        NSDateFormatter *formatter1 = [[NSDateFormatter alloc]init];
        //设置日期格式(一定要和日期格式串中日期的格式保持一致).
        [formatter1 setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
        //将格式字符串转换为NSData对象
        NSDate *date4 = [formatter1 dateFromString:dateStr1];
        NSLog(@"%@",date4);
</span></span>

NSDate 类的总结,全面基础,布布扣,bubuko.com

时间: 2025-01-10 06:32:49

NSDate 类的总结,全面基础的相关文章

OC关于NSDate类的方法和应用的总结!(全)

<span style="font-size:18px;">//1.创建日期对象 //创建的NSDate对象,获得的永远是0时区时间,如果要是求东八区时间,就加8个小时 NSDate *date = [NSDate date]; NSLog(@"%@",date); //创建明天此时的日期(时间间隔都是以秒为单位计算的) NSDate *tomorrow  = [NSDate dateWithTimeIntervalSinceNow:24*60*60];

Foundation框架 - NSDate类

NSDate类 // // main.m // 8.NSDate // // Created by wangzhaolu on 14-2-25. // Copyright (c) 2014年 Turing. All rights reserved. // #import <Foundation/Foundation.h> static void transTimeZone(NSString* currDateStr); int main(int argc, const char * argv[

浅谈类的几个基础构造函数

通过例子来介绍下C++类的几个基础构造函数. 我们以一个C类型的字符串为例: class myString { public: myString(const char* rhs = 0); // 默认(含参)构造函数 myString(const myString& rhs); // 拷贝构造函数 myString(myString&& rhs) noexcept; // 移动构造函数 myString& operator=(const myString& rhs)

Linux的文件系统、系统管理类命令、bash基础特性

Linux的文件系统根文件系统(rootfs) root fileysystem LSB,FHS(Filesystem Heirache Standard)文件系统层级结构标准,如:/etc./usr./var./root./home./dev /boot:引导文件存放目录,内核文件(vmlinuz).引导加载器(bootloader,grub)都存放于此目录: /bin:供所有用户使用的基本命令:不能关联至独立分区,OS启动即会用到的程序: /sbin:管理类的基本命令:不能关联至独立分区,O

python3 速查参考- python基础 8 -&gt; 面向对象基础:类的创建与基础使用,类属性,property、类方法、静态方法、常用知识点概念(封装、继承等等见下一章)

基础概念 1.速查笔记: #-- 最普通的类 class C1(C2, C3): spam = 42 # 数据属性 def __init__(self, name): # 函数属性:构造函数 self.name = name def __del__(self): # 函数属性:析构函数 print("goodbey ", self.name) I1 = C1('bob') #-- Python的类没有基于参数的函数重载 class FirstClass: def test(self,

Java类与对象的基础学习

1. 请输入并运行以下代码,得到什么结果? public class Test{ public static void main(String args[]){ Foo obj1=new Foo(); Foo obj2=new Foo(); System.out.println(obj1==obj2); } } class Foo {int value=100;} 结果截图: 原因:当“==”施加于原始数据类型变量时,是比较变量所保存的数据是否相等:当“==”施加于引用类型变量时,是比较这两个变

java类和对象的基础(笔记)

封装: 首先封装可以保护对象,防止用户直接存取对象的内部细节:其次封装也保护了客户端,防止对象实现部分的改变可能产生的副作用,即实现部分的改变不会影响到客户端的改变. 私有代码和数据仅能被对象本身的其他部分访问,不能被该对象外的任何程序部分所访问.当代码或数据是公有的时,虽然它们是定义在对象中的,但程序的其他部分也可以访问. 继承性体现了类之间的是一种(IS-A)关系. 类之间的关系还有组合.关联等. 类的修饰符 : 类的访问修饰符可以是public或者缺省.若类用public修饰,则该类称为公

面向对象:有关类和构造函数的基础知识

1.类和对象对象:具体存在的,可以被描述的实体 属性和行为类:具有共同属性和相同行为的多个对象的抽象 对象:具体的 实体类:抽象的 概念 类是对象的抽象 对象是类得具体实例 2.创建和使用类访问修饰符 [可选修饰符]class 类名{//类成员 //字段 > 数据 //属性 > 对字段的封装 //索引器 > 对集合类型字段的封装 //方法 > 对象的特殊行为 //事件 > 行为 //构造函数 > 初始化 } 字段:访问修饰符 数据类型 变量名; 使用:a.创建对象类名

与时间相关NSCalendar、NSDate类的基本使用

1.解决获取NSDate的时间不对 NSDate *nowDate = [NSDate date];    NSTimeZone *localTimeZone = [NSTimeZone localTimeZone];NSInteger ti = [localTimeZone secondsFromGMTForDate:nowDate];    NSDate *newDate = [nowDate dateByAddingTimeInterval:ti];NSLog(@"世界统一时间:%@ 当地