zoukankan      html  css  js  c++  java
  • Swift iOS 日期操作:NSDate、NSDateFormatter

    1、日期(NSDate)

    [objc] view plaincopy在CODE上查看代码片派生到我的代码片
     
    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.   
    13. // 2、获取时间描述  
    14. var dateDescription = now.description  
    15.   
    16. // 3、获取时间间隔  
    17. // 获取今天到明天的时间间隔  
    18. var interval1 = tomorrow.timeIntervalSinceDate(now)  
    19. // 获取今天到明天的时间间隔  
    20. var interval2 = tomorrow.timeIntervalSinceNow  
    21. // 获取 2001-01-01 08:00:00 到今天的时间间隔  
    22. var interval3 = now.timeIntervalSinceReferenceDate  
    23. // 获取 1970-01-01 08:00:00 到今天的时间间隔  
    24. var interval5 = now.timeIntervalSince1970  
    25.   
    26. // 4、随机返回一个不可能达到的未来时间、过去时间  
    27. date1 = NSDate.distantFuture() as NSDate  
    28. date2 = NSDate.distantPast() as NSDate  
    29.   
    30. // 5、时间相加  
    31. // 返回一个后天当前时刻对象(在明天基础上再加上一天的时间)  
    32. var theDayAfterTomorrow = tomorrow.dateByAddingTimeInterval(24*60*60)  
    33.   
    34. // 6、时间比较  
    35. // 比较两个时间对象是否相同返回布尔值(由于精度问题,isTheSameDate 为 false)  
    36. var isTheSameDate = theDayAfterTomorrow.isEqualToDate(NSDate(timeInterval: 2*24*60*60, sinceDate: now))  
    37. // 返回两个时间中较早的一个时间  
    38. var earlierOne = now.earlierDate(tomorrow)  
    39. // 返回两个时间中较晚的一个时间  
    40. var laterOne = now.laterDate(tomorrow)  
    41. // 比较两个时间对象是否相同并返回 NSComparisonResult 值  
    42. var compareResult = now.compare(tomorrow)  

    2、日期转换(NSDateFormatter)

    [objc] view plaincopy在CODE上查看代码片派生到我的代码片
     
    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.   
    11. // 方式2:自定义日期格式进行转换  
    12. var dateFormatter2 = NSDateFormatter()  
    13. dateFormatter2.dateFormat = "yyyy-MM-dd HH:mm:ss"  
    14. // Date 转 String  
    15. nowString = dateFormatter2.stringFromDate(now)          // 2015-03-24 21:00:00  
    16. // String 转 Date  
    17. now = dateFormatter2.dateFromString(nowString)!  

    3、扩展

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

    4、结语

    NSDate Class Reference

    NSDateFormatter Class Reference

  • 相关阅读:
    CustomDrawableTextView
    Snippet: align a TextView around an image
    How to import library ?
    Gradle自定义你的BuildConfig
    使用adb shell dumpsys检测Android的Activity任务栈
    Activity intent经常使用的 FLAG
    使用 ContentProviderOperation 来提升性能
    幻方算法
    自己制作的粉碎机批处理程序
    Ubuntu 16.10 server 相关
  • 原文地址:https://www.cnblogs.com/qyfeng009/p/5307063.html
Copyright © 2011-2022 走看看