iOS Swift:当字符串包含时区缩写时,如何将特定日期字符串格式转换为Date对象?

时间:2018-03-09 13:51:36

标签: ios swift swift3 swift4

我从服务器获取日期字符串的格式为" 2018年3月8日16:00:00 PST" 在Month&之间有很多空白的地方日期

我的意图是基本上删除那些额外的空格。我的想法是 - 我将字符串转换为Date对象,然后转换回字符串。

如何使用Date Formatter将此转换为Date对象,并考虑时区。

我关注" PST"这里。在将Date转换为String时,我将需要格式为 - " 2018年3月8日16:00:00 PST"即PST(或任何时区进入)应在最终字符串中保持不变。

3 个答案:

答案 0 :(得分:1)

extension String {
    func getDate(fromFormat format: String = "MMMM dd, yyyy HH:mm:ss zzz") -> Date? {
      let dateFormatter = DateFormatter()
      dateFormatter.dateFormat = format
      dateFormatter.locale =  Locale(identifier: "en_US_POSIX")
      return dateFormatter.date(from: self)
  }
}


let myDateString = "March 08, 2018 16:00:00 PST"
myDateString.getDate()

您也可以使用其他时间格式拨打电话。

答案 1 :(得分:-2)

试试这个

    let isoDate = "March 08, 2018 16:00:00 PST"
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "MMMM dd, yyyy HH:mm:ss z"
    let date = dateFormatter.date(from: isoDate)!

答案 2 :(得分:-2)

试试这个

class  func stringToDate (dateString:String, dateFormat:String) -> Date? {
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = dateFormat
    let dateFromString = dateFormatter.date(from: dateString)
    return dateFromString
}