Convert string to date with timezone

你离开我真会死。 提交于 2019-12-12 04:33:05

问题


i have date string 2017-01-03T10:45:00.000+02:00 and I need to transfer it to something like this 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

Thank you for your help!


回答1:


Try this,

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!))")

Result:

Date from String : Optional(2017-01-03 08:45:00 +0000)

String From Date : 2017-01-03 10:45:00 +0200




回答2:


This one works for me, Hope it help's you

 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!))")   



回答3:


If you want to convert String to Date try the below code and let me know,

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

More over you can get the time from below format:

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



回答4:


Try this:

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)


来源:https://stackoverflow.com/questions/40238329/convert-string-to-date-with-timezone

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!