繁体   English   中英

Swift中的日期格式化支持iOS 13+

[英]Date formatting in Swift that supports iOS 13+

我敢打赌这很简单。 我正在 Xcode 游乐场尝试获取字符串日期

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

并将其转换为格式为 DD-MM-YYYY 的日期 object

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 语句

您需要使用与您的输入匹配的格式来将字符串解析为Date

如果你想使用DateFormatter

让字符串 = "2022-11-27 12:34:56 +0000"

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM