热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ObjectiveCNSDate的使用

1.NSDate的介绍和使用NSDate可以用来表示时间[NSDatedate];返回的就是当前时间创建一个日期时间对象,默认是格林威治标准时间NSDate*date1[NSDat


1.NSDate的介绍和使用
  NSDate可以用来表示时间
  [NSDate date];返回的就是当前时间


  //创建一个日期时间对象,默认是格林威治标准时间
  NSDate *date1 = [NSDate date];
  //北京是东8区  用date1 加上 8 就是北京时间
  NSLog(@"%@",date1);
  
  NSTimeZone *zone = [NSTimeZone systemTimeZone];
  
   
2.格式化日期
  NSDate *date = [NSDate date];
  NSLog(@"%@",date);
  
  NSDateFormatter *formatter = [NSDateFormatter new];
  //设置日期的显示格式
  // yyyy     表示四位的年
  // MM       表示两位的月份
  // dd       表示两位的天数
  // HH       表示24小时制的小时  小写hh  表示12小时制
  // mm       表示两位的分钟数
  // ss       表示两位的秒数
  formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
  NSString *strDate = [formatter stringFromDate:date];
  NSLog(@"%@",strDate);
  
  //简写
  [([NSDateFormatter new].dateFormat = @"yyyy-MM-dd HH:mm:ss") stringFromDate:date];
  


3.计算日期
  
  NSDateFormatter *formatter = [NSDateFormatter new];
  formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
  
  //计算明天的此刻
  NSTimeInterval t = 60 * 60 * 24;//一天的秒数
  NSDate *tom = [NSDate dateWithTimeIntervalSinceNow:t];
  NSString *timeStr = [formatter stringFromDate:tom];  


  //计算昨天的时间
  NSDate *yesterday = [NSDate date];
  NSDate *zt = [yesterday addTimeInteval: -t];
  NSString *str = [formatter stringFromDate];






4.日期时间对象
  只想获取日期的年 或 月 或 日 或 时 或 分 或秒
  
  NSCalendar 日期类
  
  NSDate *d = [NSDate date];
  //获得一个日期类对象
  NSCalendar *calendar = [NSCalendar currentCalendar];
  //NSCalendarUnit 是一个日期的单元值
  
  NSDateComponents *coms = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:d]:
  NSLog(@"year:%ld ,month:%ld, day:%ld",coms.year,coms.month,coms.day);
  
  
  
  
  
5. 比较两个时间的时间差
   
   NSString *time1 = @"2015-08-01 20:50:00";
   NSString *time2 = @"2015-08-18 05:00:52";
   
   NSDateFormatter *formatter = [NSDateFormatter new];
   formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
   
   NSDate *date1 = [formatter dateFromString:time1];
   NSDate *date2 = [formatter dateFromString:time2];
   
   NSCalendar *calendar = [NSCalendar currentCalendar];
   
   int unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
   NSDateComponents *ndc = [calendar components:unit fromDate:date2 toDate:date1 option:0];
   
   NSLog(@"相差%ld年%ld月%ld日 %ld时%ld分%ld秒",ndc.year,ndc.month,ndc.day,ndc.hour,ndc.minute,ndc.second);
  

推荐阅读
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • IOS开发之短信发送与拨打电话的方法详解
    本文详细介绍了在IOS开发中实现短信发送和拨打电话的两种方式,一种是使用系统底层发送,虽然无法自定义短信内容和返回原应用,但是简单方便;另一种是使用第三方框架发送,需要导入MessageUI头文件,并遵守MFMessageComposeViewControllerDelegate协议,可以实现自定义短信内容和返回原应用的功能。 ... [详细]
  • 本文介绍了在使用Laravel和sqlsrv连接到SQL Server 2016时,如何在插入查询中使用输出子句,并返回所需的值。同时讨论了使用CreatedOn字段返回最近创建的行的解决方法以及使用Eloquent模型创建后,值正确插入数据库但没有返回uniqueidentifier字段的问题。最后给出了一个示例代码。 ... [详细]
  • WPF之Binding初探
      初学wpf,经常被Binding搞晕,以下记录写Binding的基础。首先,盗用张图。这图形象的说明了Binding的机理。对于Binding,意思是数据绑定,基本用法是:1、 ... [详细]
  • java布尔字段用is前缀_POJO类中布尔类型的变量都不要加is前缀详解
    前言对应阿里巴巴开发手册第一章的命名风格的第八条。【强制】POJO类中布尔类型的变量都不要加is前缀,否则部分框架解析会引起序列化错误。反例:定义为基本 ... [详细]
  • Mybatis动态传入order by问题-目录Mybatis动态传入orderbyMybatisorderby动态参数防注入先提及一下Mybatis动态参数orderby动态参数 ... [详细]
  • 关于java转换cst的信息
    本文目录一览:1、java之中SatSep1121:50:00CST2010 ... [详细]
  • jsappsugar,基于,js,语法,定义 ... [详细]
  • 获取时间戳.netframework*DateTimedtTimeZone.CurrentTimeZone.ToLocalTime(newDateTime(1970,1,1));i ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
  • ObjectiveC与Swift之间的互相调用和跳转
    Objective-C与Swift之间的互相调用和跳转-一、OC和Swift互相跳转首先在需要引入Swift的文件中导入头文件#import工程名-Swift.hOC跳转Swift ... [详细]
author-avatar
微公号莆田鞋园
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有