纠结处: 系统未提供毫秒 😸
核心: 纳秒可以转毫秒
备注: 我这里是百毫秒一变 timer就是0.1秒 具体根据你的情况处理
private func compareCurrentTimeOfSize() ->String {
/// expireData 是后台返回时间转成的Date
guard let endDate = expireData else { return ""}
let nowDate = Date()
let calendar: Calendar = Calendar.current
let commponent: DateComponents = calendar.dateComponents([.hour, .minute, .second, .nanosecond], from: nowDate, to: endDate)
guard commponent.hour! >0 || commponent.minute! >0 || commponent.second! > 0 else {
return "拼团已结束".localized
}
//- 时
var hStr: String!
if commponent.hour! <10 {
hStr = String(format:"0\(commponent.hour!)")
} else {
hStr = String(format:"\(commponent.hour!)")
}
//- 分
var mStr:String!
if commponent.minute! <10{
mStr = String(format:"0\(commponent.minute!)")
} else {
mStr = String(format:"\(commponent.minute!)")
}
//- 秒
var sStr: String!
if commponent.second! <10 {
sStr = String(format:"0\(commponent.second!)")
} else {
sStr = String(format:"\(commponent.second!)")
}
//- 毫秒
var ssStr: String!
if commponent.nanosecond! <1000000{
ssStr ="0"
} else {
/// 除1000000 是毫秒 除100是转百毫秒 为单位 根据需要处理
ssStr = String(format:"\(commponent.nanosecond!/1000000/100)")
}
returnString.init(format:"%@%@:%@:%@.%@","剩余:".localized, hStr, mStr, sStr, ssStr)
}