使用时区将string转换为date

我有datestring2017-01-03T10:45:00.000+02:00 ,我需要将其转移到这样的事情2017-01-03 10:45:00 +0200

  let formatter = DateFormatter() formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ" // this formatter returning 2017-01-03 08:45:00 +0000 but I need // 2017-01-03 10:45:00 +0200 

感谢您的帮助!

尝试这个,

Swift 3.0

 let dateStr = "2017-01-03T10:45:00.000+02:00" let dateFormatter = DateFormatter() dateFormatter.dateFormat = "yyyy-MM-dd\'T\'HH:mm:ss\'.000\'z" dateFormatter.timeZone = NSTimeZone(name: "UTC") as TimeZone! let date = dateFormatter.date(from: dateStr) print("Date from String : \(date)") dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss xxxx'" dateFormatter.timeZone = NSTimeZone(forSecondsFromGMT: 7200) as TimeZone! print("String From Date : \(dateFormatter.string(from: date!))") 

结果:

来自string的date:可选(2017-01-03 08:45:00 +0000)

string从date:2017-01-03 10:45:00 +0200

这个为我工作,希望它帮助你

  let dateString = "2017-01-03 08:45:00 +0000" // create dateFormatter with UTC time format let dateFormatter = DateFormatter() dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss xxxx" dateFormatter.timeZone = NSTimeZone(name: "UTC") as TimeZone! let date = dateFormatter.date(from: dateString)// create date from string print("Date1 : \(date)") // change to a readable time format and change to local time zone dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss xxxx'" dateFormatter.timeZone = NSTimeZone(forSecondsFromGMT: 7200) as TimeZone! print("Date2 : \(dateFormatter.string(from: date!))") 

如果你想转换stringdate尝试下面的代码,让我知道,

 let dateString = "2016-10-25" let dateFormatter = NSDateFormatter() dateFormatter.dateFormat = "yyyy-MM-dd" let FormatDate = dateFormatter.dateFromString(dateString) print(FormatDate) 

你可以从下面的格式得到更多的时间:

 dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ" 

尝试这个:

 let dateString = "2017-01-03T10:45:00.000+02:00" let dateFormatter = DateFormatter() dateFormatter.timeZone = NSTimeZone(name: "UTC") as TimeZone! dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss SSSZ" let FormatDate = dateFormatter.dateFromString(dateString) print(FormatDate)