dateFromServer return 是否是此人的当前时区?
Does dateFromServer return the current Timezone of the person?
当我 运行 时,返回的日期和时间下方的代码格式正确,但不是来自 API 的代码,在本例中是 currentVehicle.LastCommunicationDate!
而不是来自 currentVehicle.LastCommunicationDate!
的时间,它只是返回一个随机时区,我认为这是从服务器或类似的东西获得的。
我现在拥有的代码的输出是:2022-01-21 02:04:15
本来应该是我当地时区的实时时间,但它得到了不同的时区。
来自邮递员的LastCommunicationDate
是json格式:"LastCommunicationDate": "2022-01-21T10:58:21.367",
我想要的时间是 Postman 刚刚从 json 转换为正常时间的时间,例如:yyyy-MM-dd HH:mm:ss
let timeinterval : TimeInterval = (currentVechicle.LastCommunicationDate! as NSString).doubleValue
let dateFromServer = NSDate(timeIntervalSinceNow:timeinterval)
let outFormatter = DateFormatter()
outFormatter.locale = Locale(identifier: "en_Al")
print(dateFromServer)
let dateFormater = outFormatter
outFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
print(dateFormater.string(from: dateFromServer as Date))
let dateFromServers = dateFormater.string(from: dateFromServer as Date)
LastCommunicationDate 是一个字符串,但您正在将其转换为 Double。试试这个:
let lastCommunicationDate = "2022-01-21T10:58:21.367"
//Create dateformatter to convert string to Date
let isoDateFormatter = ISO8601DateFormatter()
isoDateFormatter.formatOptions = [
.withFullDate,
.withTime,
.withColonSeparatorInTime,
.withFractionalSeconds
]
let isoDateFormatter2 = ISO8601DateFormatter()
isoDateFormatter2.formatOptions = [
.withFullDate,
.withTime,
.withColonSeparatorInTime
]
let date = isoDateFormatter.date(from: lastCommunicationDate) ?? isoDateFormatter2.date(from: lastCommunicationDate)
//Create dateformatter to format date for output
let outFormatter = DateFormatter()
outFormatter.locale = Locale(identifier: "en_Al")
outFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let dateFromServers = outFormatter.string(from: date!)
当我 运行 时,返回的日期和时间下方的代码格式正确,但不是来自 API 的代码,在本例中是 currentVehicle.LastCommunicationDate!
而不是来自 currentVehicle.LastCommunicationDate!
的时间,它只是返回一个随机时区,我认为这是从服务器或类似的东西获得的。
我现在拥有的代码的输出是:2022-01-21 02:04:15
本来应该是我当地时区的实时时间,但它得到了不同的时区。
来自邮递员的LastCommunicationDate
是json格式:"LastCommunicationDate": "2022-01-21T10:58:21.367",
我想要的时间是 Postman 刚刚从 json 转换为正常时间的时间,例如:yyyy-MM-dd HH:mm:ss
let timeinterval : TimeInterval = (currentVechicle.LastCommunicationDate! as NSString).doubleValue
let dateFromServer = NSDate(timeIntervalSinceNow:timeinterval)
let outFormatter = DateFormatter()
outFormatter.locale = Locale(identifier: "en_Al")
print(dateFromServer)
let dateFormater = outFormatter
outFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
print(dateFormater.string(from: dateFromServer as Date))
let dateFromServers = dateFormater.string(from: dateFromServer as Date)
LastCommunicationDate 是一个字符串,但您正在将其转换为 Double。试试这个:
let lastCommunicationDate = "2022-01-21T10:58:21.367"
//Create dateformatter to convert string to Date
let isoDateFormatter = ISO8601DateFormatter()
isoDateFormatter.formatOptions = [
.withFullDate,
.withTime,
.withColonSeparatorInTime,
.withFractionalSeconds
]
let isoDateFormatter2 = ISO8601DateFormatter()
isoDateFormatter2.formatOptions = [
.withFullDate,
.withTime,
.withColonSeparatorInTime
]
let date = isoDateFormatter.date(from: lastCommunicationDate) ?? isoDateFormatter2.date(from: lastCommunicationDate)
//Create dateformatter to format date for output
let outFormatter = DateFormatter()
outFormatter.locale = Locale(identifier: "en_Al")
outFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let dateFromServers = outFormatter.string(from: date!)