iOS Swift: how to convert specific date string format to Date object, when string contains time zone abbreviation?
我从服务器获取日期字符串,格式为" March 08,2018 16:00:00 PST",其中"月份"和"日期"之间有很多空格。
我的目的是基本上删除那些多余的空格。 我的想法是-我将字符串转换为Date对象,然后再转换回字符串。
考虑到时区,如何使用Date Formatter将其转换为Date对象。
我担心这里的" PST"。 在将Date转换为String时,我将需要采用以下格式-" MST 08,2018 16:00:00 PST",即PST(或任何时区)应在最终字符串中保持不变。
1 2 3 4 5 6 7 8 9 10 11 12 | 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 3 4 5 6 | class func stringToDate (dateString:String, dateFormat:String) -> Date? { let dateFormatter = DateFormatter() dateFormatter.dateFormat = dateFormat let dateFromString = dateFormatter.date(from: dateString) return dateFromString } |
试试这个
1 2 3 4 | 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)! |