Swift 3.0 Date的简单使用
//
// ViewController.swift
// Date的使用
//
// Created by 思 彭 on 16/9/20.
// Copyright © 2016年 思 彭. All rights reserved.
// import UIKit class ViewController: UIViewController { override func viewDidLoad() {
super.viewDidLoad() /// 1.获得当前的日期和时间: currnetDate = 2016-09-20 02:22:22 +0000
let currentDate = Date()
print("currnetDate = \(currentDate)") // 2.初始化DateFormatter类
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale.current() // 3.date转string :带样式输出日期: dateString =
dateFormatter.dateStyle = DateFormatter.Style.noStyle
let dateString = dateFormatter.string(from: currentDate)
print("dateString = \(dateString)") // date1String = 9/20/16
dateFormatter.dateStyle = DateFormatter.Style.shortStyle
let date1String = dateFormatter.string(from: currentDate)
print("date1String = \(date1String)") // date2String = Tuesday, September 20, 2016
dateFormatter.dateStyle = DateFormatter.Style.fullStyle
let date2String = dateFormatter.string(from: currentDate)
print("date2String = \(date2String)") // date3String = September 20, 2016
dateFormatter.dateStyle = DateFormatter.Style.longStyle
let date3String = dateFormatter.string(from: currentDate)
print("date3String = \(date3String)") // date4String = Sep 20, 2016
dateFormatter.dateStyle = DateFormatter.Style.mediumStyle
let date4String = dateFormatter.string(from: currentDate)
print("date4String = \(date4String)") // 4.自定义输出格式 date5Str = Tuesday, September, 20, 2016
dateFormatter.dateFormat = "EEEE, MMMM, dd, yyyy"
let date5Str = dateFormatter.string(from: currentDate)
print("date5Str = \(date5Str)") // 5. string转date date = Optional(2016-12-02 10:15:59 +0000) let str = "2016-12-02 18:15:59"
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let date = dateFormatter.date(from: str)
print("date = \(date!)")// 加上! 输出: date = 2016-12-02 10:15:59 +0000 // 6.DateCopmonents的使用
// era:1 year:2016 month:9 day: 20 hour:10 minute:53 second: 0
let currentCalendar = Calendar.current()
let dateComponents = currentCalendar.components([Calendar.Unit.era,Calendar.Unit.year,Calendar.Unit.month,Calendar.Unit.day,Calendar.Unit.hour,Calendar.Unit.second,Calendar.Unit.minute], from: currentDate)
print("era:\(dateComponents.era!) year:\(dateComponents.year!) month:\(dateComponents.month!) day: \(dateComponents.day!) hour:\(dateComponents.hour!) minute:\(dateComponents.minute!) second: \(dateComponents.second!)") // 7.DateComponents -> Date
// compents = 2016-09-19 16:00:00 +0000
var componrnts = DateComponents()
componrnts.year =
componrnts.month =
componrnts.day =
let compents = currentCalendar.date(from: componrnts)
print("compents = \(compents!)"); // 8.比较日期和时间
dateFormatter.dateFormat = "MMM dd, yyyy zzz"
let str1 = "May 08, 2016 GMT"
let date1 = dateFormatter.date(from: str1)
let str2 = "May 10, 2016 GMT"
let date2 = dateFormatter.date(from: str2) // date1:Optional(2016-05-08 00:00:00 +0000)----date2:Optional(2016-05-10 00:00:00 +0000)
print("date1:\(date1)----date2:\(date2)") // 2016-05-08 00:00:00 +0000 2016-05-10 00:00:00 +0000
print((date1! as NSDate).earlierDate(date2!)); //日期更早的NSDate对象
print((date1! as NSDate).laterDate(date2!)); //日期更晚的NSDate对象 if date1?.timeIntervalSinceReferenceDate > date2?.timeIntervalSinceReferenceDate {
print("date1 is later")
} else if date1?.timeIntervalSinceReferenceDate < date2?.timeIntervalSinceReferenceDate {
print("date2 is later")
} else if date1?.timeIntervalSinceReferenceDate == date2?.timeIntervalSinceReferenceDate {
print("Same Date")
} // 9. 日期的计算
let monthsToAdd =
let daysToAdd = var calculatedDate = currentCalendar.date(byAdding: Calendar.Unit.month, value: monthsToAdd, to: currentDate, options: Calendar.Options.init(rawValue: ))
calculatedDate = currentCalendar.date(byAdding: Calendar.Unit.day, value: daysToAdd, to: calculatedDate!, options: Calendar.Options.init(rawValue: ))
print(calculatedDate) // Optional(2016-10-24 08:33:41 +0000)
} }
Swift 3.0 Date的简单使用的更多相关文章
- 【Swift 2.0】实现简单弹幕功能
前言 简单实现弹幕功能,表跟我谈效率,但也有用队列控制同时弹的数量. 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com 农民伯伯: http://over ...
- Swift 2.0 UItableView 的简单使用
在IOS开发中,UItableView 的使用真的是最常见最普通的了,现在在自学swift 今天也是这用Swift 写了写 UItableview的使用,还有一些经常出错的地方.下面我先把整个控制器的 ...
- swift 3.0字符串的简单使用
let str:String = "12314124" 获取某个指定位置的元素 print(str.characters[str.index(str.startIndex, off ...
- Swift互用性:与 Cocoa 数据类型共舞(Swift 2.0版)-b
本节内容包括: 字符串(Strings) 数值(Numbers) 集合类(Collection Classes) 错误(Errors) Foundation数据类型(Foundation Data T ...
- Swift 3 关于Date的一些操作
前言 最近在写关于日期的一些操作,所以整理了一下这方面的一些知识 本Demo使用的是playground. 我们以前使用的都是NSDate类进行日期的操作,在Swift 3.0中,我们就可以使用更加S ...
- Swift 2.0 异常处理
转自:http://www.jianshu.com/p/96a7db3fde00 WWDC 2015 宣布了新的 Swift 2.0. 这次重大更新给 Swift 提供了新的异常处理方法.这篇文章会主 ...
- fir.im Weekly - Swift 3.0 的迁移适配指南
无论你是移动开发者,还是桌面端开发者,或者正在IoT领域探索的技术人员,那么应该更加关注 iDev 全平台开发者大会,也许是后半年 iOS 开发者最盛大的技术盛宴.既有知名公司带来专业视野,又有从 S ...
- Swift 3.0 令人兴奋,但Objective-C也有小改进--Objective-C的类属性
由于Swift 3.0 出了太多令人兴奋的新特性,人们很容易忽略 Objective-C中的小改动.或许你会觉得苹果提及Objective-C 很可能是为了提高和Swift互操作性(译者注:互操作性主 ...
- Swift 2.0初探
转眼间,Swift已经一岁多了,这门新鲜.语法时尚.类型安全.执行速度更快的语言已经渐渐的深入广大开发者的心. 今年6月,一年一度的WWDC大会如期而至,在大会上Apple发布了Swift 2.0,引 ...
随机推荐
- 微信小程序开发框架 Wepy 的使用
一.github地址:https://github.com/Tencent/wepy 按照 README.md 的步骤进行操作: 1.在“介绍”中获得 wepy 的开发资源汇总:https://git ...
- [转载]Java并发编程:volatile关键字解析
Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过.在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果.在 ...
- CVE-2018-10933 LibSSH auth bypass
漏洞原理 认证实现错误, 认证分为多个步骤,可以直接跳到成功的步骤 A vulnerability was found in libssh's server-side state mach ...
- BZOJ5206 [Jsoi2017]原力[根号分治]
这是一个三元环计数的裸题,只是多了一个颜色的区分和权值的计算罢了. 有一种根号分治的做法(by gxz) 这种复杂度的证明特别显然,思路非常简单,不过带一个log,可以用unordered_map或者 ...
- python函数参数的传递、带星号参数的传递
python中函数参数的传递是通过赋值来传递的.函数参数的使用又有俩个方面值得注意:1.函数参数是如何定义的 2.在调用函数的过程中参数是如何被解析 先看第一个问题,在python中函数参数的定义主要 ...
- Intel Code Challenge Elimination Round (Div.1 + Div.2, combined) C 倒序并查集
C. Destroying Array time limit per test 1 second memory limit per test 256 megabytes input standard ...
- P4779 【模板】单源最短路径(标准版)题解
原题链接 https://www.luogu.org/problemnew/show/P4779 若还未食用弱化版的同学请先做这个qwq https://www.luogu.org/problemne ...
- Vue_(Router路由)-vue-router路由的基本用法
vue-router官网:传送门 vue-router起步:传送门 vue-router路由:Vue.js官网推出的路由管理器,方便的构建单页应用 单页应用:Single Page Applicati ...
- TCO14 Wildcard CountTables——斯特林反演
不知道咕了多长时间的题... 讲了3遍,还是自己搞懂了.. 暂时没有找到题目链接 题意: n×m的网格,每个格子填[1,x]的数,使得不存在两行两列同构. 先保证一个,行相同. 再容斥掉列. 枚举至多 ...
- UITableView动态改变Cell高度
demo下载地址:https://github.com/smileyborg/TableViewCellWithAutoLayout 版权声明:本文为博主原创文章,未经博主允许不得转载.