(1)日期的最主要知识点就是日期转换成字符串格式化输出,相反就是依照某个格式把字符串转换成日期。

(2)一般关于时区的设置非常少用到,仅仅要了解就可以。

  1. #import <Foundation/Foundation.h>
  2.  
  3. int main(int argc, const char * argv[]) {
  4.  
  5. @autoreleasepool {
  6. //获取当前时间。日期正确。时间错误,是由于时区的设置问题,可是格式化输出用HH:mm:ss貌似是正常的
  7. NSDate *date1=[NSDate date];
  8. NSLog(@"%@",date1);
  9. //想获得昨天此时此刻的时间,则须要用到减法,先把秒算出来,然后减去就可以,不多addTimeInterval方法已经被禁止使用了
  10. //NSTimeInterval *oneDay=24*60*60;
  11. //NSDate *yesterday1=[date1 addTimeInterval:-oneDay];
  12.  
  13. //比較两个时间
  14. NSDate *date2=[NSDate date];
  15. [date1 isEqualToDate:date2];
  16.  
  17. //取时间较早的那个
  18. [date2 earlierDate:date1];
  19.  
  20. //取较晚的那个
  21. [date2 laterDate:date1];
  22.  
  23. //格式化日期。事实上就是利用一个日期格式化对象把日期转换成字符串了
  24. //先定义一个NSDateFormatter对象。然后给这个格式对象定义成自己想要的格式,然后用它去转化其它日期就可以
  25. NSDateFormatter *format1=[[NSDateFormatter alloc]init];
  26. [format1 setDateFormat:@"yyyy/MM/dd HH:mm:ss"];
  27. NSString *str1=[format1 stringFromDate:date1];
  28. NSLog(@"%@",str1);
  29.  
  30. //把字符串转换成日期
  31. //和上边相似。仍然须要日期格式化对象,可是调用的方法从stringFromDate变成
  32. //由于时区设置的问题。这个日期被减去了一天
  33. NSDateFormatter *format2=[[NSDateFormatter alloc]init];
  34. [format2 setDateFormat:@"yyyy/MM/dd"];
  35. NSString *str2=@"2014/10/11";
  36. NSLog(@"%@",[format2 dateFromString:str2]);
  37.  
  38. //直接输出当前时间date1时又时区错误。而用格式化后就正常了
  39. NSDateFormatter *format3=[[NSDateFormatter alloc]init];
  40. [format3 setDateFormat:@"yyyy/MM/dd HH:mm:ss"];
  41. //下面语句能够省略,假设把GTM变成UTC的话,就会存在时差问题,究竟是哪一种。届时依据实际情况改动
  42. [format3 setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GTM"]];
  43. NSLog(@"%@",[format3 stringFromDate:date1]);
  44. //当然,我们能够手动设置时区
  45. }
  46. return 0;
  47. }

【OC加强】NSDate的使用方法——日期时间在实际开发中比較有用的更多相关文章

  1. Java日期时间API系列8-----Jdk8中java.time包中的新的日期时间API类的LocalDate源码分析

    目录 0.前言 1.TemporalAccessor源码 2.Temporal源码 3.TemporalAdjuster源码 4.ChronoLocalDate源码 5.LocalDate源码 6.总 ...

  2. Java日期时间API系列19-----Jdk8中java.time包中的新的日期时间API类,ZonedDateTime与ZoneId和LocalDateTime的关系,ZonedDateTime格式化和时区转换等。

    通过Java日期时间API系列6-----Jdk8中java.time包中的新的日期时间API类中时间范围示意图:可以很清晰的看出ZonedDateTime相当于LocalDateTime+ZoneI ...

  3. Java日期时间API系列11-----Jdk8中java.time包中的新的日期时间API类,使用java8日期时间API重写农历LunarDate

    通过Java日期时间API系列7-----Jdk8中java.time包中的新的日期时间API类的优点,java8具有很多优点,现在网上查到的农历转换工具类都是基于jdk7及以前的类写的,下面使用ja ...

  4. Java日期时间API系列12-----Jdk8中java.time包中的新的日期时间API类,日期格式化,常用日期格式大全

    通过Java日期时间API系列10-----Jdk8中java.time包中的新的日期时间API类的DateTimeFormatter, 可以看出java8的DateTimeFormatter完美解决 ...

  5. Java日期时间API系列30-----Jdk8中java.time包中的新的日期时间API类,减少时间精度方法性能比较和使用。

    实际使用中,经常需要使用不同精确度的Date,比如保留到天 2020-04-23 00:00:00,保留到小时,保留到分钟,保留到秒等,常见的方法是通过格式化到指定精确度(比如:yyyy-MM-dd) ...

  6. Java日期时间API系列6-----Jdk8中java.time包中的新的日期时间API类

    因为Jdk7及以前的日期时间类的不方便使用问题和线程安全问题等问题,2005年,Stephen Colebourne创建了Joda-Time库,作为替代的日期和时间API.Stephen向JCP提交了 ...

  7. Java日期时间API系列7-----Jdk8中java.time包中的新的日期时间API类的特点

    1.不变性 新的日期/时间API中,所有的类都是不可变的,这对多线程环境有好处. 比如:LocalDateTime 2.关注点分离 新的API将人可读的日期时间和机器时间(unix timestamp ...

  8. IOS开发之格式化日期时间的使用 && 编程中常见问题

    今天在做一个有关时间的一些开发的时候,遇见了一写问题,反正来说既是很简单的问题,但毕竟用了我一些时间去调错误,遂记录之. 本来是想用 NSDateFormat 来转换一下服务器返回的时间,然后在客户端 ...

  9. Java日期时间API系列13-----Jdk8中java.time包中的新的日期时间API类,时间类转换,Date转LocalDateTime,LocalDateTime转Date等

    从前面的系列博客中可以看出Jdk8中java.time包中的新的日期时间API类设计的很好,但Date由于使用仍非常广泛,这就涉及到Date转LocalDateTime,LocalDateTime转D ...

随机推荐

  1. POJ2031Building a Space Station (最小生成树之prim)

    Problem Description You are a member of the space station engineering team, and are assigned a task ...

  2. MongoDB学习笔记(三) 在MVC模式下通过Jqgrid表格操作MongoDB数据

    看到下图,是通过Jqgrid实现表格数据的基本增删查改的操作.表格数据增删改是一般企业应用系统开发的常见功能,不过不同的是这个表格数据来源是非关系型的数据库MongoDB.nosql虽然概念新颖,但是 ...

  3. DotNetBar.Bar控制Y顺序控制方向

    DotNetBar.Bar控件Y方向上的顺序控制 老帅       控件DevComponents.DotNetBar.Bar是能够有多种用途的.能够作为容器,也能够作为工具条,不管做什么,在Y方向上 ...

  4. mojo 关闭utf8

    [root@wx03 ~]# cat test.pl use Mojolicious::Lite; use JSON qw/encode_json decode_json/; use Encode; ...

  5. 【虚拟化实战】容灾设计之三Stretched Cluster

    作者:范军 (Frank Fan) 新浪微博:@frankfan7 Stretched Cluster是一把双刃剑,会用的如行云流水,用不好反而受其限制. 传统的vSphere Cluster是指一个 ...

  6. Swift - 各种手势检测大全(UIGestureRecognizer及其子类)

    UIGestureRecognizer有许多子类,用于监听一些常见的手势事件,这些子类主要有: 1,UISwipeGestureRecognizer:滑动(快速移动) 1 2 3 4 5 6 7 8 ...

  7. ThinkPhp学习10

    原文:ThinkPhp学习10 查询操作 Action模块 User下的search public function search(){ //判断username是否已经传入,且不为空 if(isse ...

  8. [Android学习笔记]Android中多线程开发的一些概念

    线程安全: 在多线程的情况下,不会因为线程之间的操作而导致数据错误. 线程同步: 同一个资源,可能在同一时间被多个线程操作,这样会导致数据错误.这是一个现象,也是一个问题,而研究如何解决此类问题的相关 ...

  9. jquery clone方法

    引用自http://www.w3school.com.cn/tiy/t.asp?f=jquery_manipulation_clone <html> <head> <sc ...

  10. 一个Java对象到底占多大内存?(转)

    最近在读<深入理解Java虚拟机>,对Java对象的内存布局有了进一步的认识,于是脑子里自然而然就有一个很普通的问题,就是一个Java对象到底占用多大内存? 在网上搜到了一篇博客讲的非常好 ...