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
    }

}

  

时间: 2024-10-27 05:37:48

swift 日期的基本操作的相关文章

Swift - 日期选择控件(UIDatePicker)的用法

1,使用storyboard创建日期选择控件 首先我们将一个UIDatePicker控件和一个按钮直接添加到Main.Storyboard上.该按钮是为了点击时弹出提示框显示当前选择的日期和时间. 同时在ViewController.swift中使用IBOutlet建立起控件和事件的关联,具体代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 class ViewContro

Java日期与时间的处理/Date,String,Calendar转换

public class Demo01 { //Java中Date类和Calendar简介 public static void main(String[] args) { long now=System.currentTimeMillis(); System.out.println("now= "+now); Date d1=new Date(now); System.out.println("d1= "+d1); Calendar c1=Calendar.get

Linux系统管理10——进程和计划任务管理

Linux系统管理10——进程和计划任务管理 一.程序和进程的关系 1.程序 ·保存在硬盘.光盘等介质中的可执行代码和数据 ·静态保存的代码 2.进程 ·在CPU及内存中运行的程序代码 ·动态执行的代码 ·父.子进程:每一个进程可以创建一个或多个进程 二.静态查看进程统计信息 ps命令 1.ps aux 命令 (1)作用:以简单列表的形式显示出进程信息 (2)选项释义: a:显示当前终端下的所有进程信息,包括其他用户的进程 u:使用以用户为主的格式输出进程信息 x:显示当前用户在所有终端下的进程

详解安卓项目-闹钟

一.概述 * 闹钟功能概述:添加闹钟,删除闹钟 * 思路: * 1.给一个button添加点击监听,用于添加闹钟 * 2.提供一个窗口进行闹钟时间的选择 * 3.数据保存:对闹钟的数据进行保存 * 4.数据读取:打开app的时候对闹钟的数据进行读取,以便保留以前设置的闹钟 * 5.对闹钟进行删除操作 * 6.闹钟响的时候的操作:铃声响,显示一个文字界面 * 你将了解到: * 1.SharedPreferences的使用 * 2.onFinishInflate方法 * 3.日期的基本操作 * 4.

[百家号]APT组织简介2019

5家新APT组织被披露,2019是“后起之秀”的天下? https://baijiahao.baidu.com/s?id=1621699899936470038&wfr=spider&for=pc APT(Advanced Persistent Threat)是指高级持续性威胁. APT是黑客以窃取核心资料为目的,针对客户所发动的网络攻击和侵袭行为,是一种蓄谋已久的“恶意商业间谍威胁”.这种行为往往经过长期的经营与策划,并具备高度的隐蔽性.APT的攻击手法,在于隐匿自己,针对特定对象,长期

Swift中格式化日期

Swift语言中格式化日期跟其它编程语言很相似: var dformatter = NSDateFormatter() dformatter.dateFormat = "yyyy年MM月dd日 HH:mm:ss" var datestr = dformatter.stringFromDate(date)

Swift教程_基础技术_获取当前日期时间、日期时间格式化及转换

Swift教程_基础技术_类型转换(父子类转换:Int.Double.String转换) Swift教程_基础技术_获取当前日期时间.日期时间格式化及转换 1.获取当前日期时间 var nowDate = NSDate() var formatter = NSDateFormatter() formatter.dateFormat = "yyyy-MM-dd HH:mm:ss" var dateString = formatter.stringFromDate(nowDate) pri

Swift学习笔记(二十)——数组的基本操作

Swift中数组的基本操作具体如下: (1)计算数组长度 . (2)判断数组是否为空 . (3)数组新增一个元素 . (4)数组合并 . (5)  插入元素到任意位置 . (6)删除任意位置的某个元素 (7)删除数组最后一个元素 (8)插入删除操作数组不能越界 如以下操作都是非法的: . (9)修改数组中的某个值 . (10)数组元素的批量替换 其中可以替换的替换的个数可以是不匹配的: . 但是以下的操作是非法的:批量替换也必须是用数组去赋值: (11)数组的遍历 for in 循环遍历: .

使用 Swift 3.0 操控日期

作者:Joe,原文链接,原文日期:2016-09-20译者:Cwift:校对:walkingway:定稿:CMB 当你在想要 大规模重命名 时,一个附带的挑战就是要确保所有相关的文档都必须同步更新.比如,截至到 2016 年 9 月 20 日,DateFormatter 的文档依旧没有与版本统一,引用的是 Swift 2.3 风格的 API(译者注:现在是 2017年,文档依旧没有更新...).随着时间的推移,这些疏漏毫无疑问都会被纠正,这里是一些使用 Date 以及 DateFormatter