【发布时间】:2017-06-06 05:33:45
【问题描述】:
我正在使用 Alamofire 4.0 和 Swift 3.0
我应该在我的网络服务中使用时区发布当前日期和时间。
当我尝试在控制台中打印时,我得到了正确的当前时间,但是当使用 Alamofire 将该数据推送到 Web 服务时,日期和时间会更改/增加 8 小时。
这是我正在尝试的代码。请帮助我,让我了解何时以及为什么会出错。
let now = NSDate();
let formatter = DateFormatter();
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss zzz";
let defaultTimeZoneStr = formatter.string(from: now as Date);
print(defaultTimeZoneStr)
Alamofire.request("http:********", method: .post, parameters: ["id": 1, "date" : defaultTimeZoneStr, "value": "null", "publisher": "Jack", "title": "Time Warner, "url": "internet/6/"], encoding: JSONEncoding.default).responseString
{
response in
print("Success: \(response.result.isSuccess)")
print("Response String: \(response.result.value)")
}
所以在控制台中,defaultTimeZoneStr 将是我当前的时间。但是在网络服务中,会迟到 8 个小时。
请帮忙。
谢谢。
【问题讨论】:
-
您应该检查 (1) 时区是否包含在 timeString 中,并且 (2) 也在服务器端解析, (3) 将正确的数据放入数据库中 (4) 从数据库中正确读取时区 (5) 打印您当地时区的时间
-
你使用
"zzz"->"GMT+1"但也有"Z"用于"+0100"也许这在服务器端解析得更好。 -
为了获得好的答案,您需要包括服务器端代码和一些数据库代码
标签: swift swift3 nsstring nsdate nsdateformatter