[iOS开发]Swift时间戳和字符串的转化
2020-11-27 本文已影响0人
WMSmile
时间戳转成字符串
//时间戳转成字符串
static func timeIntervalChangeToTimeStr(timeInterval:Double, _ dateFormat:String? = "yyyy-MM-dd HH:mm:ss") -> String {
let date:Date = Date.init(timeIntervalSince1970: timeInterval)
let formatter = DateFormatter.init()
if dateFormat == nil {
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
}else{
formatter.dateFormat = dateFormat
}
return formatter.string(from: date as Date)
}
字符串转时间戳
//MARK:- 字符串转时间戳
func timeStrChangeTotimeInterval(_ dateFormat:String? = "yyyy-MM-dd HH:mm:ss") -> String {
if self.isEmpty {
return ""
}
let format = DateFormatter.init()
format.dateStyle = .medium
format.timeStyle = .short
if dateFormat == nil {
format.dateFormat = "yyyy-MM-dd HH:mm:ss"
}else{
format.dateFormat = dateFormat
}
let date = format.date(from: self)
return String(date!.timeIntervalSince1970)
}
完整实例:
import UIKit
import Foundation
extension String{
//时间戳转成字符串
static func timeIntervalChangeToTimeStr(timeInterval:Double, _ dateFormat:String? = "yyyy-MM-dd HH:mm:ss") -> String {
let date:Date = Date.init(timeIntervalSince1970: timeInterval)
let formatter = DateFormatter.init()
if dateFormat == nil {
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
}else{
formatter.dateFormat = dateFormat
}
return formatter.string(from: date as Date)
}
//MARK:- 字符串转时间戳
func timeStrChangeTotimeInterval(_ dateFormat:String? = "yyyy-MM-dd HH:mm:ss") -> String {
if self.isEmpty {
return ""
}
let format = DateFormatter.init()
format.dateStyle = .medium
format.timeStyle = .short
if dateFormat == nil {
format.dateFormat = "yyyy-MM-dd HH:mm:ss"
}else{
format.dateFormat = dateFormat
}
let date = format.date(from: self)
return String(date!.timeIntervalSince1970)
}
}
使用如下:
let str = "2020-09-09"
let time = str.timeStrChangeTotimeInterval("yyyy-MM-dd")
print("time == \(time)")
let newStr = String.timeIntervalChangeToTimeStr(timeInterval: Double.init(time) ?? 0, "yyyy-MM-dd")
print("newStr == \(newStr)")
打印:
time == 1599580800.0
newStr == 2020-09-09