美文网首页
iOS - 日期转换

iOS - 日期转换

作者: ienos | 来源:发表于2022-07-06 10:09 被阅读0次
/// 时间间隔转换为分秒 
static func timeMinuteSecondFormatted(totalSeconds: Int) -> String {
    let seconds = totalSeconds % 60 
    let minutes = (totalSeconds / 60) % 60 
    return String(format: "%02d:%02d", minutes, seconds)
}

/// 时间转换为时分秒
static func timeHourMinuteSecondFormatted(totalSeconds: Int) -> String {
    let second = totalSeconds % 60
    let minutes = (totalSeconds / 60) % 60
    let hours = totalSeconds / 3600
    return String(format: "%02d:%02d:%02d", hours, minutes, seconds)
}

/// 时间戳转对应时区的时分秒
static func hourMinuteFormatted(timeInterval: TimeInterval) -> String {
    let date = Date(timeIntervalSince1970: timeInterval)
    let formatter = DateFormatter()
    /// 指定对应的时区
    formatter.timeZone = TimeZone.current
    /// 格式化
    formatter.dateFormat = "HH:mm:ss"
    return formatter.string(from: date)
}

// MARK: - Date Extension
/// 是否为今天
func isToday() -> Bool {
    let calendar = Calendar.init(identifier: .gregorian)
    let nowComponents = calender.dateComponents([.day, .month, .year], from: Date())
    let selfComponents = calender.dateComponents([.day, .month, .year], from: self as Date)
    return (selfComponents.year == nowComponents.year) && (selfComponents.month == nowComponents.month) && (selfComponents.day == nowComponents.day)
}

/// 是否为昨天
func isYesterday() -> Bool {
    let calendar = Calendar.init(identifier: .gregorian)
    let nowComponents = calender.dateComponents([.day, .month, .year], from: Date())
    let selfComponents = calender.dateComponents([.day, .month, .year], from: self as Date)
    let cmps = calender.dateComponents([.day], from: selfComponents, to: nowComponents)
    return cmps.day == 1
}

/// 是否为同一周
func isSameWeek() -> Bool {
    let calendar = Calendar.init(identifier: .gregorian)
    let nowComponents = calender.dateComponents([.day, .month, .year], from: Date())
    let selfComponents = calender.dateComponents([.weekday, .month, .year], from: self as Date)
    return (selfComponents.year == nowComponents.year) && (selfComponents.month == nowComponents.month) && (selfComponents.weekday == nowComponents.weekday)
}

/// 周几
func weakdayStringFromDate() {
    let weekdays: NSArray = ["Sun", "Mon", "Tues", "Wed", "Thur", "Fri", "Sat"]
    let calendar = Calender.init(identifier: .gregorian)
    /// 设置指定的时区
    let timeZone = TimeZone.current
    calender.timeZone = timeZone
    let theComponents = calendar.dateComponents([.weekday], from: self as Date)
    return weekdays.object(at: theComponents.weekday!) as! String
}

/// 转年龄
func ageFromDate() -> Int {
    let components1 = NSCalendar.current.dateComponents([.day, .month, .year], from: self as Date)
    let components2 = NSCalendar.current.dateComponents([.day, .month, .year], from: Date())
    var age = (components2.year ?? 0) - (components1.year ?? 0)  - 1 
    if (components1.month ?? 0 > components2.month ?? 0) || 
        (components1.month ?? 0 == components2.month ?? 0
        && components1.day ?? 0 >= components2.day ?? 0) {
        age += 1
    }
    return age
}


相关文章

网友评论

      本文标题:iOS - 日期转换

      本文链接:https://www.haomeiwen.com/subject/whacbrtx.html