直播平台源代码,iOS中使用 Date/NSDate 来获取时间

发布时间 2023-03-28 14:11:20作者: 云豹科技-苏凌霄

直播平台源代码,iOS中使用 Date/NSDate 来获取时间

将Date转为字符串类型

extension Date {
    ///将Date转化为固定格式的字符串
    ///- parameter formatter : 时间格式  例如:yyyy年MM月dd日 HH:mm:ss
    ///- warning : 时间格式基本为小写,除了:
    ///- MM:月份
    ///- HH:表示24小时制  hh:表示12小时制
    func toString(formatter: String) -> String {
        let dateFormattr = DateFormatter()
        dateFormattr.dateFormat = formatter
        return dateFormattr.string(from: self)
    }
}

​字符串转Date

extension String{
    ///将字符串转化为Date
    ///- parameter formatter : 这段时间字符串的时间格式  例如:yyyy年MM月dd日 HH:mm
    ///- warning : 字符串格式与时间格式必须一一对应且特殊符号输入法一致,如示例参数中冒号为英文环境,如果字符串为中文环境,同样会错误,返回nil
    func toDate(formatter: String) -> Date? {
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = formatter
        formatter.locale = Locale.init(identifier: "en_US_POSIX") //Locale.init(identifier: "zh_Hans_CN")// 如果只在一个中国区使用可以用这个 // 解决网络时间解析不到 date 问题
        return dateFormatter.date(from: self)
    }
}

根据NSDateFormatter技术问答得出, 在 iOS 上,用户可以覆盖默认的 AM/PM 与 24 小时时间设置(通过设置 > 常规 > 日期和时间 > 24 小时时间),这会导致 NSDateFormatter 重写您设置的格式字符串,这可能会导致您的时间解析失败(具体就在 iOS15.4 转换出的 date 为 nil)。

 以上就是直播平台源代码,iOS中使用 Date/NSDate 来获取时间, 更多内容欢迎关注之后的文章