获取 swift 中特定日期和时间的 UTC 时间?
Get UTC time for a particular date and time in swift?
大家好,
我从 iOS 的日期选择器中选择了一个特定的日期和时间。我想将此日期和时间转换为 UTC time.I 已使用以下函数。
func get_Date_time_from_UTC_time(string : String) -> String {
let dateformattor = DateFormatter()
dateformattor.dateFormat = "yyyy-MM-dd HH:mm:ss"
dateformattor.timeZone = NSTimeZone.init(abbreviation: "UTC") as TimeZone!
let dt = string
let dt1 = dateformattor.date(from: dt as String)
dateformattor.dateFormat = "yyyy-MM-dd HH:mm:ss ZZZ"
dateformattor.timeZone = NSTimeZone.local
return dateformattor.string(from: dt1!)
}
我的位置在印度。所以当我像 2016-12-26 09:53:45
这样的时间传递时,它给我的 UTC 时间是 2016-12-26 15:23:00 +0530
。现在当我在 google 中搜索 UTC 时间时,它显示我的时间是 4:32 AM 26 december
。请告诉我为什么会有这样的差异,我做的对吗?
能否请您尝试使用以下代码:
因为根据我的理解,您应该首先提供您当地的时区以将您的日期转换为本地日期,然后再将其转换为 UTC:
func get_Date_time_from_UTC_time(string : String) -> String {
let dateformattor = DateFormatter()
dateformattor.dateFormat = "yyyy-MM-dd HH:mm:ss"
dateformattor.timeZone = NSTimeZone.local
let dt = string
let dt1 = dateformattor.date(from: dt as String)
dateformattor.dateFormat = "yyyy-MM-dd HH:mm:ss ZZZ"
dateformattor.timeZone = NSTimeZone.init(abbreviation: "UTC") as TimeZone!
return dateformattor.string(from: dt1!)
}
我替换了时区code.Check,如果没有解决请告诉我
这是因为您将传入参数的日期视为 UTC 时区,并要求将其转换为本地时区。相反,你的意思恰恰相反。
func get_Date_time_from_UTC_time(string : String) -> String {
let dateformattor = DateFormatter()
dateformattor.dateFormat = "yyyy-MM-dd HH:mm:ss"
dateformattor.timeZone = NSTimeZone.local
let dt = string
let dt1 = dateformattor.date(from: dt as String)
dateformattor.dateFormat = "yyyy-MM-dd HH:mm:ss ZZZ"
dateformattor.timeZone = NSTimeZone.init(abbreviation: "UTC") as TimeZone!
return dateformattor.string(from: dt1!)
}
大家好,
我从 iOS 的日期选择器中选择了一个特定的日期和时间。我想将此日期和时间转换为 UTC time.I 已使用以下函数。
func get_Date_time_from_UTC_time(string : String) -> String {
let dateformattor = DateFormatter()
dateformattor.dateFormat = "yyyy-MM-dd HH:mm:ss"
dateformattor.timeZone = NSTimeZone.init(abbreviation: "UTC") as TimeZone!
let dt = string
let dt1 = dateformattor.date(from: dt as String)
dateformattor.dateFormat = "yyyy-MM-dd HH:mm:ss ZZZ"
dateformattor.timeZone = NSTimeZone.local
return dateformattor.string(from: dt1!)
}
我的位置在印度。所以当我像 2016-12-26 09:53:45
这样的时间传递时,它给我的 UTC 时间是 2016-12-26 15:23:00 +0530
。现在当我在 google 中搜索 UTC 时间时,它显示我的时间是 4:32 AM 26 december
。请告诉我为什么会有这样的差异,我做的对吗?
能否请您尝试使用以下代码: 因为根据我的理解,您应该首先提供您当地的时区以将您的日期转换为本地日期,然后再将其转换为 UTC:
func get_Date_time_from_UTC_time(string : String) -> String {
let dateformattor = DateFormatter()
dateformattor.dateFormat = "yyyy-MM-dd HH:mm:ss"
dateformattor.timeZone = NSTimeZone.local
let dt = string
let dt1 = dateformattor.date(from: dt as String)
dateformattor.dateFormat = "yyyy-MM-dd HH:mm:ss ZZZ"
dateformattor.timeZone = NSTimeZone.init(abbreviation: "UTC") as TimeZone!
return dateformattor.string(from: dt1!)
}
我替换了时区code.Check,如果没有解决请告诉我
这是因为您将传入参数的日期视为 UTC 时区,并要求将其转换为本地时区。相反,你的意思恰恰相反。
func get_Date_time_from_UTC_time(string : String) -> String {
let dateformattor = DateFormatter()
dateformattor.dateFormat = "yyyy-MM-dd HH:mm:ss"
dateformattor.timeZone = NSTimeZone.local
let dt = string
let dt1 = dateformattor.date(from: dt as String)
dateformattor.dateFormat = "yyyy-MM-dd HH:mm:ss ZZZ"
dateformattor.timeZone = NSTimeZone.init(abbreviation: "UTC") as TimeZone!
return dateformattor.string(from: dt1!)
}