1、日期(NSDate)

  1. // 1、初始化
  2. // 初始化一个当前时刻对象
  3. var now = NSDate()
  4. // 初始化一个明天当前时刻对象
  5. var tomorrow = NSDate(timeIntervalSinceNow: 24*60*60)
  6. // 初始化一个昨天当前时刻对象
  7. var yestoday = NSDate(timeInterval: -24*60*60, sinceDate: now)
  8. // 初始化一个 2001-01-01 08:00:00 1小时后的时刻对象
  9. var date1 = NSDate(timeIntervalSinceReferenceDate: 3600)
  10. // 初始化一个 1970-01-01 08:00:00 1小时后的时刻对象
  11. var date2 = NSDate(timeIntervalSince1970: 3600)
  12. // 2、获取时间描述
  13. var dateDescription = now.description
  14. // 3、获取时间间隔
  15. // 获取今天到明天的时间间隔
  16. var interval1 = tomorrow.timeIntervalSinceDate(now)
  17. // 获取今天到明天的时间间隔
  18. var interval2 = tomorrow.timeIntervalSinceNow
  19. // 获取 2001-01-01 08:00:00 到今天的时间间隔
  20. var interval3 = now.timeIntervalSinceReferenceDate
  21. // 获取 1970-01-01 08:00:00 到今天的时间间隔
  22. var interval5 = now.timeIntervalSince1970
  23. // 4、随机返回一个不可能达到的未来时间、过去时间
  24. date1 = NSDate.distantFuture() as NSDate
  25. date2 = NSDate.distantPast() as NSDate
  26. // 5、时间相加
  27. // 返回一个后天当前时刻对象(在明天基础上再加上一天的时间)
  28. var theDayAfterTomorrow = tomorrow.dateByAddingTimeInterval(24*60*60)
  29. // 6、时间比较
  30. // 比较两个时间对象是否相同返回布尔值(由于精度问题,isTheSameDate 为 false)
  31. var isTheSameDate = theDayAfterTomorrow.isEqualToDate(NSDate(timeInterval: 2*24*60*60, sinceDate: now))
  32. // 返回两个时间中较早的一个时间
  33. var earlierOne = now.earlierDate(tomorrow)
  34. // 返回两个时间中较晚的一个时间
  35. var laterOne = now.laterDate(tomorrow)
  36. // 比较两个时间对象是否相同并返回 NSComparisonResult 值
  37. var compareResult = now.compare(tomorrow)

2、日期转换(NSDateFormatter)

  1. // 方式1:用已有日期格式进行转换
  2. var dateFormatter1 = NSDateFormatter()
  3. dateFormatter1.dateStyle = NSDateFormatterStyle.MediumStyle
  4. dateFormatter1.timeStyle = NSDateFormatterStyle.MediumStyle
  5. var now = NSDate()
  6. // Date 转 String
  7. var nowString = dateFormatter1.stringFromDate(now)      // Mar 24, 2015, 9:00:00 PM
  8. // String 转 Date
  9. now = dateFormatter1.dateFromString(nowString)!
  10. // 方式2:自定义日期格式进行转换
  11. var dateFormatter2 = NSDateFormatter()
  12. dateFormatter2.dateFormat = "yyyy-MM-dd HH:mm:ss"
  13. // Date 转 String
  14. nowString = dateFormatter2.stringFromDate(now)          // 2015-03-24 21:00:00
  15. // String 转 Date
  16. now = dateFormatter2.dateFromString(nowString)!

3、扩展

NSDateFormatter 中提供了修改月份、星期等字符的方法,具体有兴趣的话可以参考官方文档。
关于日历(NSCalendar)、日期组件(NSDateComponents)的详细介绍后续补充。

4、结语

NSDate Class Reference

NSDateFormatter Class Reference

Swift iOS 日期操作:NSDate、NSDateFormatter的更多相关文章

  1. Swift iOS 文件操作:沙盒(SandBox)、程序包(NSBundle)

    1.沙盒机制介绍 iOS 中的沙盒机制(SandBox)是一种安全体系.每个 iOS 应用程序都有一个单独的文件系统(存储空间),而且只能在对应的文件系统中进行操作,此区域被称为沙盒.所有的非代码文件 ...

  2. NSDate 总结日期操作

    IOS Object-c NSDate总结日期操作 //NSDate //1, 创建NSDate对象 NSDate *nowDate = [NSDate date]; NSLog(@"%@& ...

  3. Java与IOS日期格式

    //JAVA日期格式 Date date = new Date(); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM- ...

  4. IOS NSDate NSDateFormatter 导致相差8小时

    时间问题应该是所有编程语言都要处理的.详细学过php的同学知道,php中也会有相差8小时的问题,然而php可以非常方便的解决的,直接设置下就好了 我最近在学习IOS的过程中,发现IOS的日期处理也是个 ...

  5. iOS 日期处理 (Swift3.0 NSDate)

    处理日期的常见情景 NSDate -> String & String -> NSDate 日期比较 日期计算(基于参考日期 +/- 一定时间) 计算日期间的差异 拆解NSDate ...

  6. NSDate常用的日期操作

    // 当前时间创建NSDate NSDate *myDate = [NSDate date]; NSLog(@"myDate = %@",myDate); //从现在开始的24小时 ...

  7. IOS文件操作的两种方式:NSFileManager操作和流操作

    1.常见的NSFileManager文件方法 -(NSData *)contentsAtPath:path //从一个文件读取数据 -(BOOL)createFileAtPath: path cont ...

  8. OC - 时间日期类NSDate

    OC - 时间日期类NSDate //NSDate 时间日期类 NSDate 二进制数据流 { //1.获取当前时间 零时区的时间 //显示的是格林尼治的时间: 年-月-日 时:分:秒:+时区 NSD ...

  9. java 字符串操作和日期操作

    一.字符串操作 创建字符串 String s2 = new String("Hello World"); String s1 = "Hello World"; ...

随机推荐

  1. HTML <form>标签

    1.单选按钮 <html> <body> <form> 名: <input type="radio" name="myname& ...

  2. python实现端口扫描器/DoS/DDoS

    整理github,梳理下Python小工具.以下是python实现的DoS/DDoS/端口扫描器(github). 一.DoS SYN Flood是当前最流行的DoS(拒绝服务攻击)与DdoS(分布式 ...

  3. win7 mysql 数据库轻松实现数据库定时备份

    本地备份: 第一步: 安装一个mysql. 第二步: 在命令行中配置mysql 打开环境变量将mysql 安装路径配置到path中 第三部: cmd 中输入:mysqldump -uroot -p12 ...

  4. scss 初学笔记 二 混合宏

    混合宏 格式  @mixin 定义混合宏 (相当于变量声明 var  $ ?) //不带参数混合宏 @mixin borderRadius{ -webkit-border-radius: 5px; b ...

  5. <<Senium2自动化测试>>读书笔记一

    为进一步加强Python知识扩展和学习,在朋友的推荐下选择了<<Selenium2自动化测试实战>>,作者胡志恒,基于Python语言实现,以实例的方式详细讲解WebDrive ...

  6. 我的踩坑之旅-跨域问题引发bug

    场景: 由于业务原因需要在请求中添加一个信息表明请求的source,经过一轮方案的评审,大家共同决定把这source信息存放在消息header中.前端小伙伴听完之后心里暗自偷笑:就一行的代码的事,请求 ...

  7. docker入门(一)

    1. Docker是什么? 官方的解释地址: Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署 ...

  8. TCP/IP详解 卷1 第二十一章 TCP的超时与重传

    21.1 引言 可靠性的保证之一就是超时重传 前面两个超时重传的例子 1)  ICMP端口不能到达时,TFTP客户使用UDP实现了一个简单的超时和重传机制,假定5s是一个适当是时间间隔,并每隔5s进行 ...

  9. 使用facebook和twitter进行分享经验总结

    凤凰涅槃,浴火重生. 在传说当中,凤凰是人世间幸福的使者,每五百年,它就要背负着积累于在人间的所有痛苦和恩怨情仇,投身于熊熊烈火中自焚,以生命和美丽的终结换取人世的祥和与幸福.同样在肉体经受了巨大的痛 ...

  10. 【分布式】ZooKeeper学习之一:安装及命令行使用

    ZooKeeper学习之一:安装及命令行使用 一直都想着好好学一学分布式系统,但是这拖延症晚期也是没得治了,所以干脆强迫自己来写一个系列博客,从zk的安装使用.客户端调用.涉及到的分布式原理.选举过程 ...