Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 发送到web服务的日期错误_Swift_Swift3_Nsstring_Nsdate_Nsdateformatter - Fatal编程技术网

Swift 发送到web服务的日期错误

Swift 发送到web服务的日期错误,swift,swift3,nsstring,nsdate,nsdateformatter,Swift,Swift3,Nsstring,Nsdate,Nsdateformatter,我正在使用Alamofire 4.0和Swift 3.0 我应该在我的web服务中发布带有时区的当前日期和时间 当我尝试在控制台中打印时,我得到了正确的当前时间,但当使用Alamofire将数据推送到web服务时,日期和时间会更改/增加8小时。 这是我正在尝试的代码。请帮助我,让我明白什么时候出错,为什么出错。 所以在控制台中,defaultTimeZoneStr将是我的当前时间。但是在web服务中,它将延迟8小时。 请帮忙。 谢谢。zzz返回缩写的时区显示名称 你应该知道: 时区显示名称不唯

我正在使用Alamofire 4.0和Swift 3.0
我应该在我的web服务中发布带有时区的当前日期和时间
当我尝试在控制台中打印时,我得到了正确的当前时间,但当使用Alamofire将数据推送到web服务时,日期和时间会更改/增加8小时。
这是我正在尝试的代码。请帮助我,让我明白什么时候出错,为什么出错。

所以在控制台中,defaultTimeZoneStr将是我的当前时间。但是在web服务中,它将延迟8小时。
请帮忙。

谢谢。

zzz
返回缩写的时区显示名称

你应该知道:

  • 时区显示名称不唯一。例如,常用的
    PST
    可以代表太平洋标准时间(UTC-08)和菲律宾标准时间(UTC+08)

  • 时区显示名称在不同语言中可能不同。您尚未为格式化程序设置区域设置,因此名称可以是随机的


  • 简而言之,如果您需要标准格式,例如用于API调用,请不要使用
    zzz
    。使用
    Z
    X
    变体之一。

    这是关于您的模拟器或电话时区的。它始终与UTC一起工作


    在我看来,您总是使用UTC 0。

    您应该检查(1)时间字符串是否包含时区,(2)在服务器端也进行解析,(3)在数据库中输入正确的时间(4)使用时区从数据库读取正确的时间(5)使用本地时区打印时间您使用
    “zzz”
    ->
    “GMT+1”
    ,但也有
    “Z”
    对于
    “+0100”
    可能在服务器端解析更好。要获得好的答案,您需要包括服务器端代码和一些db代码。我删除了zzz,保留了“yyy-MM-dd HH:MM:ss”。在web服务中发布的时间仍然错误。
    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)")
            }