2018-05-29 09:52:28 jhy835239104 阅读数 3389

/// DateTools.swift

import Foundation

extension Date {
    func daysBetweenDate(toDate: Date) -> Int {
        let components = Calendar.current.dateComponents([.day], from: self, to: toDate)
        return components.day ?? 0
    }
}
/// xxxController.swift

 let formatter = DateFormatter()
 formatter.dateFormat = "YYYYMMdd"
 let endDate = formatter.date(from: "20181220")

 /// 当前日期 - 考试日期
 let date = Date()
 let days = Date().daysBetweenDate(toDate: endDate!)
 print("相差天数为 ==", days)
2019-02-27 22:20:15 u010545480 阅读数 169

一、基本操作

1、获取一个当前的日期

 let today = Date()
 print(today)
 
 //输出结果:2019-02-27 13:02:40 +0000
 系统当前取的是零时区的时间,我们所在的是东八区,所以会与实际的时间相差八个小时

2、Date转String

 let dateFormatter = DateFormatter()
 dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
 let strDate = dateFormatter.string(from: Date())
 print(strDate)
 
 //输出结果:2019-02-27 21:17:33

3、String转Date

let strDate = "2019-02-28 21:30:00"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
dateFormatter.timeZone = TimeZone.init(identifier: "UTC")
let date = dateFormatter.date(from: strDate)
print(date!)

//输出结果:2019-02-28 21:30:00 +0000

4、获取日期的各个组成成分

 let calendar = Calendar.current
 let timeZone = TimeZone.init(identifier: "UTC")
 let componets = calendar.dateComponents(in: timeZone!, from: Date())
 print(componets.year!)
 print(componets.month!)
 print(componets.day!)
 print(componets.hour!)
 print(componets.minute!)
 print(componets.second!)
 print(componets.weekday!)
2016-12-09 10:13:00 wxdtan 阅读数 4097
///now -> string yyyy-MM-dd     2016-12-09
func dateNowAsString() -> String {
    
    let nowDate = Date()
    let timeZone = TimeZone.init(identifier: "UTC")
    let formatter = DateFormatter()
    formatter.timeZone = timeZone
    formatter.locale = Locale.init(identifier: "zh_CN")
    formatter.dateFormat = "yyyy-MM-dd HH:mm"
    
    let date = formatter.string(from: nowDate)
    return date.components(separatedBy: " ").first!
}

2011-10-09 14:36:19 fenglei12 阅读数 125
两个Date类型的变量可以通过compareTo方法来比较。此方法的描述是这样的:如果参数 Date 等于此 Date,则返回值 0;如果此 Date 在 Date 参数之前,则返回小于 0 的值;如果此 Date 在 Date 参数之后,则返回大于 0 的值。
实际上比较的是自1970 年 1 月 1 日 00:00:00 GMT以来的毫秒数。毫秒数越大的时间越大。
如:
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateCompare {

/**
* @param args
* @throws ParseException
*/
public static void main(String[] args) throws ParseException {
String DateStr1 = "2011-10-1 10:20:16";
String DateStr2 = "2011-10-07 15:50:35";
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date dateTime1 = dateFormat.parse(DateStr1);
Date dateTime2 = dateFormat.parse(DateStr2);
int i = dateTime1.compareTo(dateTime2);
System.out.println(i < 0);
}

}

打印出:true
2016-12-07 18:02:34 C_calary 阅读数 4868

1.对Date进行格式转化

//获得当前时间,但是时间是格林威治时间
let currentDate = Date()
print("当前时间:\(currentDate)")//当前时间:2016-12-07 10:00:58 +0000
//设置时间显示样式
let dateFormatter = DateFormatter()  
dateFormatter.locale = Locale.current //设置时区,时间为当前系统时间
//输出样式
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let stringDate = dateFormatter.string(from: currentDate)
print("转换后的当前时间:\(stringDate)")//转换后的当前时间:2016-12-07 18:00:58

2.对string样式日期进行转换

///日期处理--后台给的是全位数(20161112190000) -> 2016-11-12 19:00:00
func toolsChangeDataStyle(toFullStyle string: String) -> String{
    let dateFormat = DateFormatter()
    dateFormat.dateFormat = "yyyyMMddHHmmss"
    let date = dateFormat.date(from: string)
    let dateMatt = DateFormatter()
    dateMatt.dateFormat = "yyyy-MM-dd HH:mm:ss"
    let str = dateMatt.string(from: date ?? Date())
    return str
}

swift-Date时间比较

阅读数 3392

Swift Date转String

阅读数 2088

swift 时间戳转为date (unix)

博文 来自: c_c123
没有更多推荐了,返回首页