zoukankan      html  css  js  c++  java
  • swift 日期的基本操作

    //
    //  ZFDateTool.swift
    //  MyStudyDemo
    //
    //  Created by FranZhou on 16/6/12.
    //  Copyright © 2016年 kimree. All rights reserved.
    //
    
    import UIKit
    
    public class ZFDateTool: NSObject {
        
        // dateformat  default = "yyyy-MM-dd"
        public static var formatString: String! = "yyyy-MM-dd"{
            willSet{
                self.dateFormatter.dateFormat = newValue
            }
        }
        
        private static let dateFormatter: NSDateFormatter = {
            let dateFormat = NSDateFormatter()
            dateFormat.dateFormat = ZFDateTool.formatString
            return dateFormat
        }()
        
        // MARK: - 获得字符串时间
        public class func dateFromString(dateString: String, formatString:String = ZFDateTool.formatString) -> NSDate?{
            var dateFormat = ZFDateTool.dateFormatter
            if formatString != ZFDateTool.formatString{
                dateFormat = dateFormat.copy() as! NSDateFormatter
                dateFormat.dateFormat = formatString
            }
            
            return dateFormat.dateFromString(dateString)
        }
        
        // MARK: - 获取时间字符串
        public class func stringFromDate(date: NSDate = NSDate(), formatString:String = ZFDateTool.formatString) -> String{
            var dateFormat = ZFDateTool.dateFormatter
            if formatString != ZFDateTool.formatString{
                dateFormat = dateFormatter.copy() as! NSDateFormatter
                dateFormat.dateFormat = formatString
            }
            
            return dateFormat.stringFromDate(date)
        }
        
        // MARK: - timestamp  基于秒
        public class func timestamp(date: NSDate = NSDate()) -> Double{
            let timestamp = date.timeIntervalSince1970
            return timestamp
        }
        
        public class func dateFromTimestamp(timestamp: Double) -> NSDate{
            let date = NSDate(timeIntervalSince1970: timestamp)
            return date
        }
        
        // MARK: - 获取 年 月 日 星期
        private static let calendar: NSCalendar = {
            let calendar = NSCalendar.currentCalendar()
            
            // 设定每周的第一天从星期几开始,比如:
            // 如需设定从星期日开始,则firstWeekday传入1
            // 如需设定从星期一开始,则firstWeekday传入2
            // 该设置只影响 NSCalendar  不会影响到 NSDateComponents 的处理方式
            calendar.firstWeekday = 2
            
            return calendar
        }()
        
        public class func yearWithDate(date: NSDate = NSDate()) -> Int{
            let components = calendar.components(NSCalendarUnit.Year, fromDate: date)
            return components.year
        }
        
        public class func monthWithDate(date: NSDate = NSDate()) -> Int{
            let month = calendar.ordinalityOfUnit(NSCalendarUnit.Month, inUnit: NSCalendarUnit.Year, forDate: date)
            return month
        }
        
        public class func dayWithDate(date: NSDate = NSDate()) -> Int{
            let day = calendar.ordinalityOfUnit(NSCalendarUnit.Day, inUnit: NSCalendarUnit.Month, forDate: date)
            return day
        }
        
        public class func weekdayWithDate(date: NSDate = NSDate()) -> Int{
            // calendar.components(NSCalendarUnit.Weekday, fromDate: date) 该方法获取的weekday永远都是 1 星期天  2 星期一 ....  这种顺序
            // 如果想获得 firstWeekday 进行处理后的正确星期时间, 用下述方法
            let weekday = calendar.ordinalityOfUnit(NSCalendarUnit.Weekday, inUnit: NSCalendarUnit.WeekOfYear, forDate: date)
            return weekday
        }
        
        
    }
    

      

  • 相关阅读:
    【状压】孤岛营救问题
    【网络流】魔术球问题
    【状压】软件补丁问题
    [网络流]最大流
    [网络流]小M的作物
    简单版AC自动机
    KMP
    sql 检索字符串
    Mysql触发器 :当一个表发生插入或更新时,将数据同步到另一张表中
    sql server触发器 :当一个表发生插入或更新时,将数据同步到另一张表中
  • 原文地址:https://www.cnblogs.com/FranZhou/p/5579722.html
Copyright © 2011-2022 走看看