[英]Getting date from datepicker wrt different timezones
我正在使用标准的DatePicker,并在其顶部打印日期。 由于某种原因,我的日期选择器将其时区设置为IST,这可能是由于区域设置。
让我们来看一个例子:
DatePicker-> 12:00 PM日期读取-> 06:30:00 +0000
这是正确的,因为日期会显示UTC时间,而IST是UTC + 5:30
现在,当我更改DatePicker的时区时,假设伦敦是GMT + 1 ,
DatePicker-> 12:00 PM日期读取-> 06:30:00 +0000
日期中实际应读为11:00:00的位置
我如何更改DatePicker的时区:
if let tmz = selectTimeZone {
datePicker.timeZone = tmz
}
我之前有过同样的问题,但出于另一个原因。 尝试此希望它会有所帮助。
第一-
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
var startDate = dateFormatter.string(from: yourdatepicker.date)
startDate = localToUTC(date: startDate)
其次,我们将其转换为本地到UTC,在这里我们将TimeZone转换为系统时间
func localToUTC(date:String) -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
dateFormatter.timeZone = NSTimeZone.system
dateFormatter.timeZone = TimeZone(abbreviation: "UTC")
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let dt = dateFormatter.date(from: date)
return dateFormatter.string(from: dt!)
}
第三,如果您想将UTC时间转换为您的当地时间
func UTCToLocal(date:String) -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
dateFormatter.timeZone = TimeZone(abbreviation: "UTC")
let dt = dateFormatter.date(from: date)
dateFormatter.timeZone = NSTimeZone.system
dateFormatter.dateFormat = "hh:mm a"
return dateFormatter.string(from: dt!)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.