支持iOS 13及以上版本的Swift日期格式

bnl4lu3b  于 2022-12-10  发布在  Swift
关注(0)|答案(1)|浏览(206)

我敢打赌这很简单。我正在Xcode的Playground里玩一个字符串约会

let string = "2022-11-27 00:00:00 +0000"

并将其转换为格式类似DD-MM-YYYY的Date对象

func airdateFormat(_ key: String) -> Date? {
  let expectedFormat = Date().formatted(.dateTime.day().month(.wide).year())
  let date = try! Date(strategy: expectedFormat)
  return date 
}

我也试过

func airdateFormat(_ key: String) -> Date? {
    guard let dateString = self[key] as? String else { return nil }
    let dateFormatted = DateFormatter.dateFormat(fromTemplate: "MM-DD-YYYY", options: Int, locale: Locale?)
    return dateFormatted().date(from: dateString)
}

}
我从json解析这个日期字符串,因此使用guard/else语句

iyr7buue

iyr7buue1#

您需要使用与输入匹配的格式将字符串解析为Date
如果要使用DateFormatter
2012年11月27日星期一上午10时30分

let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss Z"
let date = formatter.date(from: string)

对于最新的操作系统版本,使用FormatStyle

let formatStyle = Date.FormatStyle()
    .year(.defaultDigits)
    .month(.twoDigits)
    .day(.twoDigits)
    .hour()
    .minute()
    .second()
    .timeZone()

let date = try formatStyle.parse(string)

相关问题